2012-07-10 83 views
0

隨機森林已經返回的對象,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" 

我想要做的相關測試,這意味着在相同的格式獲得的OB。目前,obs是一列數據幀:

> obs 
     e2004MeanY 
298  4261 
252  1821 
373  1710 
117  1138 

如何將obs轉換爲正確的格式?我無法弄清楚如何將索引與數值中的值相關聯。

+0

? 'obs'看起來像有兩列。第一列數字是行名嗎? – 2012-07-10 19:06:10

+0

'> dim(obs) [1] 122 1' 它只有一列,左'列'是索引 – Zug 2012-07-10 19:07:08

+0

'str(prd)'得到了什麼? – A5C1D2H2I1M1N2O1R2T1 2012-07-10 19:10:27

回答

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]) 
+0

謝謝,這就是我一直在尋找的。 – Zug 2012-07-10 19:36:27