r - 有没有一种简单的方法可以标准化表中的每一列而无需循环(使用 R)?

标签 r loops transform normalize

我需要标准化数据框中除一列之外的所有列,我正在使用 knn。我知道我可以使用循环来做到这一点,但似乎可能有一种更简单的方法,特别是因为我正在使用 200 多个列/因子,这些列/因子必须重命名。

有什么建议吗?

最佳答案

是的。我假设您更愿意根据变量的名称来识别不进行缩放的变量,而不是根据其列位置来识别它。没有玩具示例,我只能猜测这正是您想要的。

x <- data.frame(replicate(10, rnorm(10)))
names(x) <- letters[1:10]

##let's say you don't want to scale "b"
scalevars <- setdiff(names(x), "b")
x.scaled <- data.frame(sapply(x[,scalevars], scale),b=x[,"b"])
x.scaled <- x.scaled[,names(x)] #to get the original order of variables

关于r - 有没有一种简单的方法可以标准化表中的每一列而无需循环(使用 R)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11659568/

相关文章:

替换(重新编码)列表中的值

CSS 3D 变换 : inverted element selection

在父 div 上进行 css3 缩放变换,但在一些关联的 div 中保持不变的大小

mysql - 在 sp mysql 的 while 循环中插入 select 语句

css - 使用 CSS3 变换比例缩放一个点

r - 根据特定的值序列创建子集

javascript - R 可折叠树 : add images dynamically in tooltip

R中group_by的滚动差异

Java - 如何在循环中每重复 n 次换行

loops - Haskell 迭代参数类型不匹配,为什么?