如何仅缩放(x)数据帧的某些列?我有一个包含7列的数据框,我想只缩放第3列和第6列。其余的应保持不变。
答案 0 :(得分:8)
我们可以使用lapply
执行此操作。子集感兴趣的列,使用lapply
循环它们,将输出分配回数据子集。在这里,我们使用的是c
,因为scale
的outpuf是一个matrix
,只有一列。使用c
或as.vector
,它会转换为vector
df[c(3,6)] <- lapply(df[c(3, 6), function(x) c(scale(x)))
或其他选项mutate_at
来自dplyr
library(dplyr)
df %>%
mutate_at(c(3,6), funs(c(scale(.))))