在gtsummary中能否将add_n()结果添加至变量标签旁而非新列?
在gtsummary变量名旁添加样本量标注的实现方法
gtsummary没有直接的默认配置选项能一键实现这个需求,但可以通过自定义变量标签的方式轻松完成,把样本量(N = {N})直接拼在变量名称后面,和原标签同列。
具体代码示例
library(gtsummary) library(dplyr) library(tidyr) # 1. 先获取目标变量的原标签和对应非缺失样本量 var_info <- mtcars %>% select(mpg, disp, vs) %>% # 计算每个变量的非缺失样本量 summarise(across(everything(), ~sum(!is.na(.x)))) %>% pivot_longer(everything(), names_to = "variable", values_to = "n") %>% # 关联gtsummary默认的变量标签 left_join(tbl_summary(mtcars %>% select(mpg, disp, vs))$meta_data %>% select(variable, label), by = "variable") %>% # 拼接新标签:原标签 + (N = 样本量) mutate(new_label = paste0(label, " (N = ", n, ")")) # 2. 生成带自定义标签的统计表格 mtcars %>% select(mpg, disp, vs) %>% tbl_summary( # 传入自定义的变量标签 label = setNames(var_info$new_label, var_info$variable) )
补充说明
- 代码自动适配有缺失值的场景,统计的是每个变量的非缺失样本量
- 不需要额外调用
add_n(),避免出现重复的样本量列 - 如果是分组统计表格(带
by参数),只需调整样本量计算逻辑,按分组统计每个变量的N后再拼接标签即可
内容的提问来源于stack exchange,提问作者Enoque Filho
相关产品推荐
相关产品推荐

