我正在尝试对大量变量运行简单的单一线性回归,并根据另一个变量进行分组。以 mtcars 数据集为例,我想在 mpg 和每个其他变量(mpg ~ disp、mpg ~ hp 等)之间运行单独的线性回归,并按另一个变量(例如 cyl)分组。
使用 purrr::map 可以轻松地在每个变量上独立运行 lm (根据这个很棒的教程修改 - https://sebastiansauer.github.io/EDIT-multiple_lm_purrr_EDIT/):
library(dplyr)
library(tidyr)
library(purrr)
mtcars %>%
select(-mpg) %>% #exclude outcome, leave predictors
map(~ lm(mtcars$mpg ~ .x, data = mtcars)) %>%
map_df(glance, .id='variable') %>%
select(variable, r.squared, p.value)
# A tibble: 10 x 3
variable r.squared p.value
<chr> <dbl> <dbl>
1 cyl 0.726 6.11e-10
2 disp 0.718 9.38e-10
3 hp 0.602 1.79e- 7
4 drat 0.464 1.78e- 5
5 wt 0.753 1.29e-10
6 qsec …Run Code Online (Sandbox Code Playgroud)