如何在 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
如何将数据框中的 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