我有一个lm
(线性模型)对象列表。
如何从单个调用中的所有对象中选择特定元素(例如截距,等级或残差)?
答案 0 :(得分:3)
我使用plyr
包,然后如果我的对象列表被调用modelOutput
并且我想要得出所有预测值,我会这样做:
modelPredictions <- ldply(modelOutput, as.data.frame(predict))
如果我想要所有系数,我会这样做:
modelCoef <- ldply(modelOutput, as.data.frame(coef))
哈德利最初向我展示了如何做到这一点in a previous question。
答案 1 :(得分:2)
首先,我将生成一些示例数据:
> set.seed(123)
> x <- 1:10
> a <- 3
> b <- 5
> fit <- c()
> for (i in 1:10) {
+ y <- a + b*x + rnorm(10,0,.3)
+ fit[[i]] <- lm(y ~ x)
+ }
以下是从每个拟合中获取估算值的一个选项:
> t(sapply(fit, function(x) coef(x)))
(Intercept) x
[1,] 3.157640 4.975409
[2,] 3.274724 4.961430
[3,] 2.632744 5.043616
[4,] 3.228908 4.975946
[5,] 2.933742 5.011572
[6,] 3.097926 4.994287
[7,] 2.709796 5.059478
[8,] 2.766553 5.022649
[9,] 2.981451 5.020450
[10,] 3.238266 4.980520
如您所述,其他有关合身的数量可供选择。上面我只用coef()
函数抓取系数。请查看以下命令以获取更多信息:
names(summary(fit[[1]]))