返回由一组对象共享的属性向量

时间:2009-09-08 17:41:48

标签: r

我有一个lm(线性模型)对象列表。

如何从单个调用中的所有对象中选择特定元素(例如截距,等级或残差)?

2 个答案:

答案 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]]))