如何将crosstable交叉表中的NA标签替换为‘missing’?
问题:如何将crosstable生成的交叉表中NA标签改为“missing”?
原生成交叉表的代码如下:
library(crosstable) ct1 = crosstable(mtcars2, c(disp, vs), by=am, total="both", percent_pattern="{n} ({p_row}/{p_col})", percent_digits=0) %>% as_flextable() ct1
简便解决方案
方法1:直接在crosstable()中指定NA标签(推荐)
crosstable包本身提供了na_label参数,可直接设置缺失值的显示文本,一步到位:
library(crosstable) ct1 = crosstable(mtcars2, c(disp, vs), by=am, total="both", percent_pattern="{n} ({p_row}/{p_col})", percent_digits=0, na_label = "missing") %>% # 指定NA显示为"missing" as_flextable() ct1
方法2:生成flextable后替换文本
如果已经生成了flextable对象,可使用flextable的replace()函数批量替换所有"NA"文本:
# 基于已生成的ct1对象修改 ct1 <- ct1 %>% flextable::replace(pattern = "NA", replacement = "missing", part = "all") ct1
说明:方法1更稳妥,从交叉表生成的源头设置标签,避免后续文本替换可能出现的误匹配问题。
内容的提问来源于stack exchange,提问作者Misha
相关产品推荐
相关产品推荐

