1

我正在尝试将 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 多年来所做的回归进行迭代预测。这些存储在一个列表 summary_of_lm 中,即:summary_year_1,summary_year_2 ...这些是存储系数,标准错误等的矩阵...我不明白的是我没有使用 $ 符号,我有这个错误。

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

详细信息:我还已经为 df 和 summary_year_i 声明了具有相同变量名的所有参数,以使 pred 正常工作。

4

1 回答 1

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 
于 2013-08-14T17:24:14.523 回答