如何在 0 到 100 之间缩放 R 中的 int 值

How to scale int values in R between 0 and 100

如何将数据框中的 INT 值缩放为 0 到 100 之间的值?例如这个 DF:

> employee <- c('John Doe','Peter Gynn','Jolie Hope')
> value <- c(1, 3, 365)
> startdate <- as.Date(c('2010-11-1','2008-3-25','2007-3-14'))
> employ.data <- data.frame(employee, value, startdate)
> employ.data$value <- as.integer(employ.data$value)

如何将值缩放到 0 到 100 之间的范围。阈值应为 50。 所以我的输出应该是这样的:

> employ.data
employee value  startdate
1   John Doe  1 2010-11-01
2 Peter Gynn  3 2008-03-25
3 Jolie Hope  100 2007-03-14
library(scales)
employ.data$scaled.value <- rescale(employ.data$value, from = c(1, 365), to = c(0, 100))

你看到发生了什么事了吗? rescale() 函数将 "old" 比例作为参数 "from",将 "new" 比例作为参数 "to"。然后它发挥它的魔力,employ.data$scaled.value 中的值在新的范围内。

虽然我不明白你所说的 "The threshold should be 50" 是什么意思。

我的意思是,对于阈值,所有小于 50 的值都保持其值。

我现在得到它:

employ.data$value <- replace(employ.data$value, employ.data$value > 50, 100)

而我的结果:

> employ.data
employee value  startdate
1   John Doe     1 2010-11-01
2 Peter Gynn     3 2008-03-25
3 Jolie Hope   100 2007-03-14