【问题标题】:How to rescale multiple attributes at the same time in R如何在R中同时重新调整多个属性
【发布时间】:2017-06-08 07:51:25
【问题描述】:

我有一个数据集,其中包含多个属性,整数值从 1 到 5,我想重新调整这些属性,使其值范围从 -1 到 1。我当前的代码是

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

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

【问题讨论】:

  • 看看?for?lapply,两者都会有帮助。
  • ?apply 为:DF = head(mtcars[,3:5]);apply(DF,2,function(x) rescale(x,to=c(-1,1),from=c(1,5)) )

标签: r attributes dataset scale rescale


【解决方案1】:

使用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),插入数据框中变量位置的向量,或变量名称的向量作为字符串。

【讨论】:

    猜你喜欢
    • 2015-09-23
    • 2019-05-18
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多