指定col_counts时rtables中display_columncounts及表头N=xx移除功能失效
问题原因
当调用build_table()时传入col_counts参数,rtables会强制将该参数指定的计数添加到列标签中,此操作优先级高于basic_table(show_colcounts = FALSE)的设置,甚至手动修改tbl6@col_info@display_columncounts也无法覆盖——因为列标签在表格构建阶段就已生成包含计数的版本。
解决方案
有两种可行方式实现“自定义列计数但不显示表头(N=xx)”的需求:
方式1:构建后修改列标签
在原代码基础上,通过正则表达式移除列标签中的计数部分:
library(rtables) lyt3 <- basic_table(show_colcounts = FALSE) %>% split_cols_by("ARM") %>% analyze("AGE", afun = function(x) { setNames(as.list(fivenum(x)), c( "minimum", "lower-hinge", "median", "upper-hinge", "maximum" )) }) tbl6 <- build_table(lyt3, DM, col_counts = 1:3) # 移除列标签中的(N=xx)文本 new_col_labels <- gsub("\\s*\\(N=\\d+\\)", "", col_labels(tbl6)) tbl6 <- set_col_labels(tbl6, new_col_labels) tbl6
方式2:布局阶段手动设置计数(不使用col_counts参数)
在列拆分时手动指定每个分组的计数,同时保持show_colcounts = FALSE:
library(rtables) lyt3 <- basic_table(show_colcounts = FALSE) %>% split_cols_by("ARM", split_fun = function(df, spl) { splits <- split_rows_by(df, spl) # 为每个分组手动设置自定义计数 splits[[1]]$count <- 1 splits[[2]]$count <- 2 splits[[3]]$count <- 3 splits }) %>% analyze("AGE", afun = function(x) { setNames(as.list(fivenum(x)), c( "minimum", "lower-hinge", "median", "upper-hinge", "maximum" )) }) tbl6 <- build_table(lyt3, DM) tbl6
两种方式均会输出你预期的无(N=xx)表头的表格。
内容的提问来源于stack exchange,提问作者Huan Lu
相关产品推荐
相关产品推荐

