使用predict.lm:operator时出错对原子向量无效

时间:2013-08-14 16:41:17

标签: r vector atomic predict

我正在尝试使用带有列表的pred函数,但似乎我遇到了问题。当我计算它时,它被写成:

  

错误:$运算符对原子矢量无效

这是我的代码:

for (i in 1:30) {
a=i
print(a)   
df[,4][df[,1]==a] <- exp(predict.lm(summary_of_lm[[a]][1], newdata = df[df[,1]==a,])) }

我想迭代我30年来做出的回归预测。那些存储在list_of_lm列表中,即:summary_year_1,summary_year_2 ......这些是存储系数,std错误等的矩阵......我不明白的是我没有使用$符号而且我有这个错误。

> class(summary_of_lm)
[1] "list"
> class(summary_of_lm[[a]])
[1] "matrix"

细节:我也已经为df和summary_year_i声明了所有具有相同变量名的参数,以使pred工作。

1 个答案:

答案 0 :(得分:0)

我不确定您是否正在寻找这个,a下面是所有数据集的列表(对于您的示例,它可能类似于1995,1996等等)

a<-split(mydata,mydata$cyl)
myprediction<-Map(function(x)predict(lm(mpg~cyl,data=x)),a)
> myprediction
$`4`
    Datsun 710      Merc 240D       Merc 230       Fiat 128    Honda Civic Toyota Corolla  Toyota Corona 
      26.66364       26.66364       26.66364       26.66364       26.66364       26.66364       26.66364 
     Fiat X1-9  Porsche 914-2   Lotus Europa     Volvo 142E 
      26.66364       26.66364       26.66364       26.66364 

$`6`
     Mazda RX4  Mazda RX4 Wag Hornet 4 Drive        Valiant       Merc 280      Merc 280C   Ferrari Dino 
      19.74286       19.74286       19.74286       19.74286       19.74286       19.74286       19.74286