我有一个名为data
的数据框,我希望将第4个字段中的值重新调整为0-1000的范围,并将缩放后的值舍入为最接近的整数。我正在尝试使用ddply
,round
和rescale
:
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
任何人都可以指出问题或更好的方法来完成我想要做的事情吗?
答案 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)))