如何在 R 中同时重新缩放多个属性

How to rescale multiple attributes at the same time in R

我有一个数据集包含多个属性,其整数值从 1 到 5,我想重新缩放这些属性,以便它们的值范围从 -1 到 1。我当前的代码是

    newdata$Rats = rescale(newdata$Rats, to = c(-1,1), from=c(1,5))

其中 newdata 是我的数据集,Rats 是我的属性之一。如果我只有几个属性要更改,那很好,但我有大约 30 个左右的属性要更改。有没有办法使用 for 循环来执行此操作或使用 R 具有的 select 函数或其他可能的方法?

使用lapply():

newdata[, c(1:30)] <- lapply(newdata[, c(1:30)], 
                             function(x) rescale(x, to = c(-1, 1), from = c(1, 5)))

对于 c(1:30),插入数据框中变量位置的向量,或变量名称的向量作为字符串。