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 是一个单列数据框:

> 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 回答