0

RandomForestは、インデックスを持つクラス数値であるオブジェクトprdを返しました。

> prd
      298       252       373       117         0        16       442        74 
4397.9232 1826.1264 1787.1963 1388.8097 1075.7217  873.9856 1602.7068 1775.1237 
class(prd)
[1] "numeric"

同じ形式でobsを取得することを意味する相関テストを実行したいと思います。現在、obsは1列のデータフレームです。

> obs
       e2004MeanY
298       4261
252       1821
373       1710
117       1138

obsを正しいフォーマットに変換するにはどうすればよいですか?インデックスを数値の値に関連付ける方法がわかりません。

4

1 に答える 1

2

データフレームをサブセット化できます。これを使用[すると、デフォルトでdrop = TRUE空のディメンションが削除され、1列のデータフレームから数値ベクトルになります。例えば

R> obs <- data.frame(e2004MeanY = c(4261,1821,1712,1138))
R> rownames(obs) <- c(268,252,373,117)
R> 
R> (obs1 <- obs[, 1]) ## equiv of: obs[, 1, drop = TRUE]
[1] 4261 1821 1712 1138
R> class(obs1)
[1] "numeric"

names行名の喪失が問題である場合は、それらをベクトルのとして追加し直します。

R> names(obs1) <- rownames(obs)
R> obs1
 268  252  373  117 
4261 1821 1712 1138

もちろん、呼び出し時に一時オブジェクトを使用する場合、これは問題ではありません。cor()たとえば、次のようになります。

cor(prd, obs[, 1])
于 2012-07-10T19:27:29.780 に答える