首页 > 解决方案 > 这会单独缩放每一列吗?R

问题描述

如果我想标准化第 2 列和第 3 列(每列分别标准化),这行得通吗?

df[c(2:3)] <- scale(df[c(2:3)])

标签: rstandardized

解决方案


根据?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

它对scale每一列分别执行


推荐阅读