【发布时间】:2017-09-21 12:37:19
【问题描述】:
我有一个如下的数据框:
A B C
ab gb 0.03
fn mn 0.12
po er 0.43
oo et 0.22
iu ew 0.77
ii mn 0.14
dd wr 0.99
qw ty 0.45
如何将 C 列标准化为 0-5 的范围。我知道你可以用 dplyr 做到这一点,但它不会将它转换为 0-5。
normalize <- function(x){
return((x-min(x)) / (max(x)-min(x)))
}
scaled_data <-
df %>%
group_by(A, B) %>%
mutate(NORMALIZED = normalize(C))
【问题讨论】:
-
您可以使用
dplyrdf1 %>% mutate(C = 5*C/max(C)) -
scales::rescale() -
“你可以用 dplyr 做到这一点,但它不能将它转换为 0-5”是什么意思?你说你可以,你不能那样做,那你想说什么?也许您想说,您知道如何使用 dplyr 来完成与所示内容相同的操作,但这并不能满足您的要求。但即使你说清楚了,为什么要提这个?
标签: r dplyr normalization normalize