在数据框中重新缩放列?

时间:2012-01-20 13:11:45

标签: r plyr rescale

我有一个名为data的数据框,我希望将第4个字段中的值重新调整为0-1000的范围,并将缩放后的值舍入为最接近的整数。我正在尝试使用ddplyroundrescale

scaled_data <- ddply(data, round(rescale(data[,4], to=c(0,1000), from=range(data[,4], na.rm=TRUE)), 0)

上面的代码抛出了这个错误:

Error in `[.data.frame`(envir, exprs) : undefined columns selected

任何人都可以指出问题或更好的方法来完成我想要做的事情吗?

1 个答案:

答案 0 :(得分:4)

我认为你太复杂了 - 我不明白为什么你需要ddply

dd[,4] <- round(ggplot2::rescale(dd[,4],to=c(0,1000))

(我正在使用ggplot2::rescale因为你做了,但(x-min(x))/diff(range(x))*1000会做同样的事情)

或者如果你知道第四栏的名称,你可以:

dd <- transform(dd,fourth=rescale(fourth,to=c(0,1000)))