基于未加权数据修改加权gt表格:n<2时替换为NA
基于未加权样本量修改加权表格单元格为NA的实现方法
需求说明
当未加权分组的样本量n<2时,将加权表格中对应单元格的统计值替换为NA。
解决方案步骤
计算未加权分组计数
先生成未加权的交叉计数表,并转为数据框格式,方便后续与加权表格的统计数据关联:# 计算未加权分组样本量 unweighted_counts <- table(df$a, df$b) %>% as.data.frame(responseName = "n_unweighted") %>% setNames(c("a", "b_level", "n_unweighted"))关联计数并修改加权表格数据
通过tbl_summary_object$df_by访问gtsummary生成的分组统计数据,将未加权计数关联后,根据条件替换统计值:# 关联未加权计数,替换符合条件的统计值为NA tbl_summary_object$df_by <- tbl_summary_object$df_by %>% left_join(unweighted_counts, by = c("by" = "a", "level" = "b_level")) %>% mutate( # 修改显示文本为NA stat_display = ifelse(n_unweighted < 2, NA_character_, stat_display), # 修改底层统计值为NA stat = ifelse(n_unweighted < 2, NA_real_, stat) ) %>% select(-n_unweighted) # 移除临时计数列查看修改后的表格
打印修改后的表格即可看到效果:print(tbl_summary_object)
效果验证
在你的示例数据中,f-g1和m-g1的未加权样本量均为1,修改后这两个单元格的加权统计值会被替换为NA,其余单元格保持原有加权计算结果。
内容的提问来源于stack exchange,提问作者EML
相关产品推荐
相关产品推荐

