2012-07-10 75 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