如何删除gtsummary表格中特定条件的指定单元格内容
解决方案:删除指定单元格内容
方法1:直接在gtsummary中完成修改
核心是用modify_table_body()精准定位目标单元格,把对应值替换为空。你要找的是Company B分层下、Score_level=Low行、Gender=F列(对应列名stat_1_2)的单元格,直接在表格构建流程中加入修改步骤即可:
library(tidyverse) library(gtsummary) Score_level <- c("Low", "High", "Average", "Low", "High", "Average","Low", "High", "Average","Low", "High", "Average","Low", "High", "Average", "Low") Gender <- c("M", "F", "M", "F","M", "F","M", "F","M", "F","M", "F","M", "F", "M", "F") Company <- c("Company_A", "Company_B", "Company_B", "Company_A","Company_A", "Company_B","Company_A", "Company_B","Company_A", "Company_B","Company_A", "Company_B","Company_A", "Company_B", "Company_A", "Company_B") df <- data.frame(Score_level, Gender, Company) df %>% tbl_strata(strata = Company, .tbl_fun = ~ .x %>% tbl_summary(by = Gender, statistic = all_categorical() ~ "{n} ({p}%)", missing_text = "(Missing Data)") %>% modify_header(label = "**Outcome**")) %>% # 定位目标单元格并清空内容 modify_table_body( ~ .x %>% mutate( stat_1_2 = ifelse(strata == "Company_B" & label == "Low", "", stat_1_2) ) )
方法2:转换为gt表格后修改
如果更习惯gt的操作逻辑,先把gtsummary对象转成gt,再精准定位目标单元格清空内容:
df %>% tbl_strata(strata = Company, .tbl_fun = ~ .x %>% tbl_summary(by = Gender, statistic = all_categorical() ~ "{n} ({p}%)", missing_text = "(Missing Data)") %>% modify_header(label = "**Outcome**")) %>% as_gt() %>% # 直接替换指定单元格内容为空 fmt_missing( columns = stat_1_2, rows = strata == "Company_B" & label == "Low", missing_text = "" )
两种方法都能保留Company B分组下、Score_level=Average行的stat_1_2值,只清空你指定的目标单元格。
内容的提问来源于stack exchange,提问作者Stats Iliterate
相关产品推荐
相关产品推荐

