【问题标题】:Error using predict.lm: operator is invalid for atomic vectors使用 predict.lm 时出错:运算符对原子向量无效
【发布时间】:2013-08-14 16:41:16
【问题描述】:

我正在尝试将 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 正常工作。

【问题讨论】:

    标签: r vector atomic predict


    【解决方案1】:

    我不确定您是否正在寻找下面的 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 
    

    【讨论】:

    • 嘿,您的解决方案也可以。实际上我的错误是 summary_of_lm[[a]] 是 lm 的摘要,而不是 lm 本身。这就是我的错误的来源。
    • 如果您认为这解决了您的问题,您可能希望接受此作为答案。
    猜你喜欢
    • 2015-10-02
    • 1970-01-01
    • 2020-06-21
    • 2021-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多