1

我有一个名为的数据框data,我想将第 4 个字段中的值重新缩放到 0-1000 的范围,并将缩放后的值四舍五入到最接近的整数。我正在尝试使用ddplyround并且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

谁能指出问题或更好的方法来完成我想要做的事情?

4

1 回答 1

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)))
于 2012-01-20T13:26:26.297 回答