2

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

有什么建议么?

4

1 回答 1

5

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

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
于 2012-07-25T22:37:10.043 回答