You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在gtsummary中多次调用add_n函数?

解决gtsummary连续调用add_n失效的问题

问题原因

连续调用add_n()时,第一次调用会修改表格结构,默认依赖的初始n列(总样本数列)被替换或移除,导致第二次调用add_n()找不到目标列,触发! Column "n" not found and was ignored.警告,且无法生成缺失值计数列。

解决方案

方案1:用add_stat()替代第二次add_n()

add_stat()可直接针对每个变量计算缺失值数量,避免和add_n()的列冲突:

library(gtsummary)
library(dplyr)

iris %>%
  tbl_summary(type = list(where(is.logical) ~ "categorical"),
              missing_text = 'Missing',
              missing = 'ifany') %>%
  add_n(statistic = "{N_nonmiss}", col_label = "**N responses**") %>%
  add_stat(
    fns = ~n_miss(.),
    col_label = "**Missing**"
  )

方案2:通过modify_table_body一次性添加两列

直接修改表格主体数据,手动计算非缺失和缺失值数量,灵活性更高:

library(gtsummary)
library(dplyr)

iris %>%
  tbl_summary(type = list(where(is.logical) ~ "categorical"),
              missing_text = 'Missing',
              missing = 'ifany') %>%
  modify_table_body(
    ~.x %>%
      mutate(
        `N responses` = purrr::map_dbl(variable, ~sum(!is.na(iris[[.x]]))),
        Missing = purrr::map_dbl(variable, ~sum(is.na(iris[[.x]])))
      )
  ) %>%
  modify_header(`N responses` = "**N responses**", Missing = "**Missing**")

内容的提问来源于stack exchange,提问作者Julio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 06:15:22