Одним из вариантов будет цикл по интересующим столбцам, paste
для создания формулы в lm
, tidy
на выходе, slice
в первой строке и select
в интересующих столбцах
library(broom)
library(tidyverse)
map_df(c("cyl", "disp", "wt"), ~
lm(paste0("mpg ~ ", .x), data = mtcars) %>%
tidy %>%
slice(-1) %>%
select(Variable = term, Beta = estimate, Coeff = std.error))
# A tibble: 3 x 3
# Variable Beta Coeff
# <chr> <dbl> <dbl>
#1 cyl -2.88 0.322
#2 disp -0.0412 0.00471
#3 wt -5.34 0.559
Или используя base R
t(sapply(c("cyl", "disp", "wt"), function(x)
summary(lm(paste0("mpg ~ ", x), data = mtcars))$coefficients[-1, 1:2]))