R-解释预测的命名num输出

时间:2014-08-17 13:26:30

标签: r predict

我使用线性回归模型进行预测。

 #t1 has 200000 rows, t2 has 50000,both have same columns
>reg<-lm(val~DER_mass_MMC+DER_mass_transverse_met_lep,t1)
>kk<-predict(reg,t2)

输出是一个大小为50000的命名数字。但是它也有每个元素的名称似乎是任意的(虽然按递增顺序)

 >head(kk)
   1           4           8          10          15          18 
 0.35498720  0.23365060  0.52591340  0.20095918 -0.01489389  0.35662207 
 >str(kk)
 Named num [1:50000] 0.355 0.2337 0.5259 0.201 -0.0149 ...
-  attr(*, "names")= chr [1:50000] "1" "4" "8" "10" ...
 > max(names(kk))
 [1] "99992"
> min(names(kk))
[1] "1"
> length(unique(names(kk)))
[1] 50000

这些数字是什么意思?我阅读了predict.lm的手册页,但它似乎没有评论它。看看网上其他人发布的预测输出,似乎他们应该只是整数索引1 2 3 4 ..我做错了吗?

1 个答案:

答案 0 :(得分:1)

对我来说,这些似乎是行索引或类似的东西,源于t2对象的结构。我做了一个小例子来想象这个。

t0 <- data.frame(a=1:5, b=c(1,4,2,NA,NA))
t1 <- t0[!is.na(t0$b),]
t2 <- t0[is.na(t0$b),]

reg <- lm(b~a, data=t0)

> predict(reg, t2)
       4        5
3.333333 3.833333

> rownames(t2)
[1] "4" "5"

考虑到数据的结构,这似乎是合理的吗?