GT 0.9.0中summary_rows函数报错及无汇总行问题求助
gt 0.9.0 中 summary_rows() 适配旧代码的解决方案
核心问题适配要点
- 无数据分组时,禁止使用everything()或省略groups参数,直接设置
groups = NULL,这是gt 0.9.0的参数要求,可避免"everything()必须在选择函数内使用"的报错。 - 汇总行不显示的核心原因:未明确指定目标列,或自定义汇总函数的格式不符合新版本要求。
正确代码示例
library(gt) # 示例数据(替换为你的实际数据) sample_data <- mtcars[1:6, c("mpg", "hp", "wt")] # 自定义汇总函数:计算非零值的中位数(替换为你的fns_labels_exc0逻辑) fns_labels_exc0 <- function(x) { median(x[x != 0], na.rm = TRUE) } # 构建带汇总行的gt表格 final_table <- gt(sample_data) %>% summary_rows( groups = NULL, # 无分组时必须设为NULL columns = c(mpg, hp), # 指定需要汇总的特定列 fns = list( "非零中位数" = fns_labels_exc0 # 命名列表绑定函数与标签 ), formatter = fmt_number, # 可选:设置汇总值的格式 decimals = 1 ) final_table
关键注意事项
- 自定义汇总函数必须接收向量输入,返回单个标量值,不能返回向量或其他非标量类型。
- 若需要添加多个汇总规则,在
fns的命名列表中新增条目即可,比如list("均值" = mean, "非零中位数" = fns_labels_exc0)。 - 旧代码中若有
groups = everything(),直接替换为groups = NULL即可适配新版本。
内容的提问来源于stack exchange,提问作者Joseph Harvard
相关产品推荐
相关产品推荐

