1

4番目のフィールドの値を0〜1000dataの範囲に再スケーリングし、スケーリングされた値を最も近い整数に丸めたいというデータフレームがあります。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、同じことをするでしょう)

または、4 番目の列の名前がわかっている場合は、次のことができます。

dd <- transform(dd,fourth=rescale(fourth,to=c(0,1000)))
于 2012-01-20T13:26:26.297 に答える