如何在expss表格中移除指定文本并优化总计行标签显示
解决方法
要实现你需要的表格调整,只需要对原代码做两处关键修改:
修改点1:移除行中的"Miles/(US) gallon"文本
原代码中tab_cells(list(mpg))会默认显示mpg的变量标签(即"Miles/(US) gallon")在行区域,我们可以通过给mpg指定空标签来消除这个文本:
将tab_cells(list(mpg))改为tab_cells(list("" = mpg)),这样行区域就不会显示该变量标签。
修改点2:让总计行仅显示"Total"
原代码中tab_subtotal_rows的prefix = "Total "和new_label = NULL会自动把cyl的所有类别(4/6/8)拼在总计标签后,我们直接设置new_label = "Total"即可让总计行只显示"Total"。
完整修改后的代码
library(expss) mtcars %>% tab_cols(list("Miles/(US) gallon")) %>% tab_cells(list("" = mpg)) %>% # 设置空标签消除行中的变量文本 tab_rows(cyl) %>% tab_subtotal_rows(list(cyl), position = "bottom", new_label = "Total") %>% # 直接指定总计行标签为Total tab_stat_fun("n" = w_n, "Mean" = w_mean, "Std. Err." = w_se, "Min" = w_min, "Max" = w_max, unsafe=FALSE, method = list) %>% tab_pivot()
替代方案(临时修改变量标签)
如果你不想修改tab_cells的写法,也可以临时清空mpg的变量标签,生成表格后不影响原数据:
library(expss) mtcars %>% within({ set_var_labs(mpg = "") # 临时清空mpg的变量标签 }) %>% tab_cols(list("Miles/(US) gallon")) %>% tab_cells(mpg) %>% tab_rows(cyl) %>% tab_subtotal_rows(list(cyl), position = "bottom", new_label = "Total") %>% tab_stat_fun("n" = w_n, "Mean" = w_mean, "Std. Err." = w_se, "Min" = w_min, "Max" = w_max, unsafe=FALSE, method = list) %>% tab_pivot()
内容的提问来源于stack exchange,提问作者Mehmet Emin Vural
相关产品推荐
相关产品推荐

