【问题标题】:R: How to include lm residual back into the data.frame? [duplicate]R:如何将 lm 残差包含回 data.frame 中? [复制]
【发布时间】:2013-06-08 20:58:05
【问题描述】:

我正在尝试将 lm 的残差放回原始 data.frame:

fit <- lm(y ~ x, data = mydata, weight = ind)
mydata$resid <- fit$resid

如果残差的长度与 mydata 的行数相同,则第二行通常会起作用。然而,在我的例子中,ind 的一些元素是NA。因此,剩余长度通常小于行数。 fit$resid 也是一个“数字”向量,所以我没有标签可以将它与 mydata data.frame 合并回来。有没有一种优雅的方法来实现这一点?

【问题讨论】:

    标签: r lm


    【解决方案1】:

    如果ind 只是一个向量,我认为应该很容易。

    sel <- which(!is.na(ind))
    mydata$resid <- NA
    mydata$resid[sel] <- fit$resid
    

    【讨论】:

    • 作为替代方案,模型可以与lm(..., na.action=na.exclude) 匹配。然后residuals() 将用NAs 填充其输出以用于省略的情况 - 请参阅this answer
    • 我认为这仅适用于 data.frame 中的 NA,而不适用于不在 data.frame 中的权重数组。
    • 显然,它适用于权重,请参阅http://pastebin.com/0VUd68cz。虽然我没有对此进行深入调查。
    猜你喜欢
    • 1970-01-01
    • 2016-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-16
    • 2017-03-11
    • 2021-07-26
    • 2017-10-03
    相关资源
    最近更新 更多