r-从lapply函数将对象名称分配给不同的tbl_summary表



我想从循环(lapply函数(中生成不同的tbl_summary表,该循环针对应用于的类似分类变量(var1、var2、var3(;by=">并为它们中的每一个分配对象名称,例如"strong";tbl_ var1"tbl_var2";以及";tbl_var3";

dflist <- c("var1", 
"var2", 
"var3")
vartbls = lapply(dflist, function(df) {
tbl_summary_ex2 <-
trial %>%
select(age, grade, response, trt) %>%
tbl_summary(
by = df,
label = list(age ~ "Patient Age"),
statistic = list(all_continuous() ~ "{mean} ({sd})"),
digits = list(age ~ c(0, 1))
)
}
)

这里有一个reprex,它提供了函数的工作版本,并提供了设置名称的代码:

library(gtsummary)
dflist <- c("age", "grade")
vartbls <-  lapply(dflist, function(x) {
tbl_summary_ex2 <-
trial %>%
select(age, grade, response, trt) %>%
tbl_summary(
by = x,
label = list(age ~ "Patient Age"),
statistic = list(all_continuous() ~ "{mean} ({sd})"),
digits = list(age ~ c(0, 1))
)
}
)
names(vartbls) <- paste0("tbl_", dflist)

以下是一个使用{purrr}并在迭代前设置名称的版本:

library(gtsummary)
library(purrr)
result <- c("trt", "grade") %>%
purrr::set_names(paste0("tbl_", .)) %>%
purrr::map(., ~ trial %>%
select(age, grade, response, trt) %>%
tbl_summary(
by = .x,
label = list(age ~ "Patient Age"),
statistic = list(all_continuous() ~ "{mean} ({sd})"),
digits = list(age ~ c(0, 1))
))

最新更新