我试图将pred函数与列表一起使用,但似乎遇到了问题。当我计算它时,它写着:
错误:$operator对于原子向量无效
这是我的代码:
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_eyear_1、summary_eYear_2。。。这些是存储系数、标准误差等的矩阵……我不明白的是,我没有使用$符号,我有这个错误。
> class(summary_of_lm)
[1] "list"
> class(summary_of_lm[[a]])
[1] "matrix"
详细信息:我已经为df和summary_year_I声明了所有具有相同变量名的参数,以便使pred工作。
我不确定你是否在寻找这个,下面的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