假设我要运行一系列回归,如下所示:

summary(lm(mpg ~ cyl, data = mtcars))
summary(lm(mpg ~ disp, data = mtcars))
summary(lm(mpg ~ wt, data = mtcars))


我想创建一个数据框,其中包含每个输出的估计值和标准误差,最好包含变量名。因此最终输出应如下所示:

Variable  Beta  Coeff
cyl       -2.8  .32
disp      -.04  .004
wt        -5.3  .56


我认为它将需要一个功能。有什么想法吗?

最佳答案

一种简单的方法是在purrr中使用broomtidyverse软件包。

library(purrr)
library(broom)
cols <- c("cyl", "disp", "wt")

map_df(cols, ~lm(reformulate(.x, "mpg"), data=mtcars) %>% tidy())
#   term        estimate std.error statistic  p.value
#   <chr>          <dbl>     <dbl>     <dbl>    <dbl>
# 1 (Intercept)  37.9      2.07        18.3  8.37e-18
# 2 cyl          -2.88     0.322       -8.92 6.11e-10
# 3 (Intercept)  29.6      1.23        24.1  3.58e-21
# 4 disp         -0.0412   0.00471     -8.75 9.38e-10
# 5 (Intercept)  37.3      1.88        19.9  8.24e-19
# 6 wt           -5.34     0.559       -9.56 1.29e-10


这为您提供了一些额外的信息,但是您可以根据需要使用dplyr轻松过滤掉它。

关于r - 将一系列回归的结果顺序存储到数据框中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55910303/

10-10 18:47