【发布时间】:2018-09-30 04:05:52
【问题描述】:
如何仅缩放(x)数据框的某些列?我有一个包含 7 列的数据框,我只想缩放第 3 列和第 6 列。其余的应该保持原样。
【问题讨论】:
如何仅缩放(x)数据框的某些列?我有一个包含 7 列的数据框,我只想缩放第 3 列和第 6 列。其余的应该保持原样。
【问题讨论】:
我们可以通过lapply 做到这一点。对感兴趣的列进行子集化,使用lapply 循环遍历它们,将输出分配回数据子集。在这里,我们使用c,因为scale 的输出是带有单列的matrix。使用c 或as.vector,它被转换为vector
df[c(3,6)] <- lapply(df[c(3, 6), function(x) c(scale(x)))
或者另一个选项是来自dplyr的mutate_at
library(dplyr)
df %>%
mutate_at(c(3,6), funs(c(scale(.))))
【讨论】:
df[c(3, 6)] <- scale(df[c(3, 6)])