如何改进在 R 中使用 for 循环获得的 lm 输出?
How to improve lm output obtained with for loop in R?
为了使用相同的 Y 和不同的 X 评估多个模型,我做了一个 for 循环。
使用 mtcars 数据库我创建了两个子集:
mcars1 <- subset(mtcars, select=c("mpg","hp","disp"))
mcars2 <- subset(mtcars, select=c("mpg","disp"))
for循环如下
for (var in c("mcars1", "mcars2")){
v <- get(var)
reg <- lm(mpg~., data=v)
print(summary(reg)$coef)
}
输出:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 30.73590425 1.331566129 23.082522 3.262507e-20
hp -0.02484008 0.013385499 -1.855746 7.367905e-02
disp -0.03034628 0.007404856 -4.098159 3.062678e-04
Estimate Std. Error t value Pr(>|t|)
(Intercept) 29.59985476 1.229719515 24.070411 3.576586e-21
disp -0.04121512 0.004711833 -8.747152 9.380327e-10
如你所见,一切正常。我只想知道我可以使用哪些函数来改进我的输出,例如得到类似的东西:
Model 1
Estimate Std. Error t value Pr(>|t|)
(Intercept) 30.73590425 1.331566129 23.082522 3.262507e-20***
hp -0.02484008 0.013385499 -1.855746 7.367905e-02***
disp -0.03034628 0.007404856 -4.098159 3.062678e-04***
Model 2
Estimate Std. Error t value Pr(>|t|)
(Intercept) 29.59985476 1.229719515 24.070411 3.576586e-21***
disp -0.04121512 0.004711833 -8.747152 9.380327e-10***
任何建议将不胜感激。
lapply(list(mcars1,mcars2),function(x)coef(summary(lm(x))))
[[1]]
Estimate Std. Error t value Pr(>|t|)
(Intercept) 30.73590425 1.331566129 23.082522 3.262507e-20
hp -0.02484008 0.013385499 -1.855746 7.367905e-02
disp -0.03034628 0.007404856 -4.098159 3.062678e-04
[[2]]
Estimate Std. Error t value Pr(>|t|)
(Intercept) 29.59985476 1.229719515 24.070411 3.576586e-21
disp -0.04121512 0.004711833 -8.747152 9.380327e-10
或者你可以这样做:
lapply(list(mcars1,mcars2),function(x)coef(summary(lm(mpg~.,dat=x))))
为了使用相同的 Y 和不同的 X 评估多个模型,我做了一个 for 循环。 使用 mtcars 数据库我创建了两个子集:
mcars1 <- subset(mtcars, select=c("mpg","hp","disp"))
mcars2 <- subset(mtcars, select=c("mpg","disp"))
for循环如下
for (var in c("mcars1", "mcars2")){
v <- get(var)
reg <- lm(mpg~., data=v)
print(summary(reg)$coef)
}
输出:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 30.73590425 1.331566129 23.082522 3.262507e-20
hp -0.02484008 0.013385499 -1.855746 7.367905e-02
disp -0.03034628 0.007404856 -4.098159 3.062678e-04
Estimate Std. Error t value Pr(>|t|)
(Intercept) 29.59985476 1.229719515 24.070411 3.576586e-21
disp -0.04121512 0.004711833 -8.747152 9.380327e-10
如你所见,一切正常。我只想知道我可以使用哪些函数来改进我的输出,例如得到类似的东西:
Model 1
Estimate Std. Error t value Pr(>|t|)
(Intercept) 30.73590425 1.331566129 23.082522 3.262507e-20***
hp -0.02484008 0.013385499 -1.855746 7.367905e-02***
disp -0.03034628 0.007404856 -4.098159 3.062678e-04***
Model 2
Estimate Std. Error t value Pr(>|t|)
(Intercept) 29.59985476 1.229719515 24.070411 3.576586e-21***
disp -0.04121512 0.004711833 -8.747152 9.380327e-10***
任何建议将不胜感激。
lapply(list(mcars1,mcars2),function(x)coef(summary(lm(x))))
[[1]]
Estimate Std. Error t value Pr(>|t|)
(Intercept) 30.73590425 1.331566129 23.082522 3.262507e-20
hp -0.02484008 0.013385499 -1.855746 7.367905e-02
disp -0.03034628 0.007404856 -4.098159 3.062678e-04
[[2]]
Estimate Std. Error t value Pr(>|t|)
(Intercept) 29.59985476 1.229719515 24.070411 3.576586e-21
disp -0.04121512 0.004711833 -8.747152 9.380327e-10
或者你可以这样做:
lapply(list(mcars1,mcars2),function(x)coef(summary(lm(mpg~.,dat=x))))