创建一个循环,在所有独立变量上运行简单回归

时间:2014-03-09 09:20:00

标签: r

我使用虹膜数据集构建了一个简单的回归模型。我想用所有可用变量运行因变量(iris$Sepal.Length),每个回归都有自己的变量(每个回归应该是。我想得到的结果是每个回归摘要的列表。使用虹膜数据集应该有4个回归:

r1 <- lm(Sepal.Length ~ Sepal.Width, data=iris)
r2 <- lm(Sepal.Length ~ Petal.Length, data=iris)
r3 <- lm(Sepal.Length ~ Petal.Width, data=iris)
r4 <- lm(Sepal.Length ~ Species, data=iris)

以及每个回归的系数摘要。 任何想法我该怎么做?

2 个答案:

答案 0 :(得分:2)

library(plyr)
coefs = llply(names(iris)[-1], function(x){
  fml = as.formula(sprintf("Sepal.Length ~ %s", x))
  coef(lm(fml, data = iris))
})

答案 1 :(得分:2)

sapply(names(iris)[-1], 
       function(x) lm.fit(cbind(1, iris[,x]), iris[,"Sepal.Length"])$coef)
#   Sepal.Width Petal.Length Petal.Width  Species
#x1   6.5262226    4.3066034   4.7776294 4.261333
#x2  -0.2233611    0.4089223   0.8885803 0.791000