如果我想标准化第 2 列和第 3 列(每列单独标准化),这可行吗?
df[c(2:3)] <- scale(df[c(2:3)])
Run Code Online (Sandbox Code Playgroud)
根据?scale
scale 的值决定了如何执行列缩放(居中后)。如果scale是一个长度等于x的列数的类似数字的向量,则x的每一列都除以scale中的相应值。如果scale为TRUE,则通过将x的(居中)列除以它们的标准差(如果center为TRUE)来完成缩放,否则除以均方根。如果scale为FALSE,则不进行缩放。
作为测试,我们可以对每一列单独执行此操作,也可以作为一个整体执行此操作
data(mtcars)
out1 <- sapply(mtcars, scale)
out2 <- scale(mtcars)
all.equal(out1, out2, check.attributes = FALSE)
#[1] TRUE
Run Code Online (Sandbox Code Playgroud)
它对scale每一列分别进行