44

purrr 之美

purrr 优雅编程

Tidyverse 篇
R
library(tidyverse)
library(broom)
penguins <- palmerpenguins::penguins %>% drop_na()

接、化、发

向马保国老师的武术精髓致敬。

R
f <- list(
  body_mass_g ~ bill_length_mm,
  body_mass_g ~ bill_length_mm + bill_depth_mm,
  body_mass_g ~ bill_length_mm + bill_depth_mm + flipper_length_mm
)
R
f %>% 
  set_names(paste("model", 1:3)) %>%            # 接
  map( ~ tidy(lm(.x, data = penguins)) ) %>%    # 化
  list_rbind(names_to = "model")                # 发

也可以不用broom::tidy(), 而使用gtsummary::tbl_regression()

R
library(gtsummary)

f %>%                                                    
  set_names() %>%                                       # 接       
  map(~ tbl_regression(lm(.x, data = penguins)) ) %>%   # 化
  tbl_merge(tab_spanner = paste("model", 1:3))          # 发
R
pacman::p_unload(pacman::p_loaded(), character.only = TRUE)