You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R的table1函数中移除数值变量的Mean[SD]行?

用table1函数实现自定义统计量展示

当然可以通过自定义统计量函数来实现你的需求——去掉数值变量的"Mean[SD]"行,只保留"Median[Range]",同时让分类变量展示频数和百分比。具体实现代码如下:

library(table1)
library(tibble)

# 构造示例数据
number <- c(1:10)
pet <- c("cat","cat","dog","dog","dog","cat","dog","dog","cat","dog")
df <- tibble(number, pet)

# 自定义统计量函数
my_stats <- function(x, ...) {
  if (is.numeric(x)) {
    # 计算中位数和极差
    med_val <- median(x, na.rm = TRUE)
    range_val <- range(x, na.rm = TRUE)
    sprintf("%g [%g, %g]", med_val, range_val[1], range_val[2])
  } else if (is.character(x) || is.factor(x)) {
    # 计算分类变量的频数与百分比
    count_tab <- table(x)
    pct_tab <- prop.table(count_tab) * 100
    paste0(count_tab, " (", sprintf("%.1f", pct_tab), "%)")
  }
}

# 调用table1并指定自定义统计量
table1(~ number | pet, data = df, render.continuous = my_stats)

关键说明:

  • render.continuous参数专门用来定义数值变量的统计结果渲染逻辑,传入自定义的my_stats函数后,会覆盖默认的均值+标准差输出,改为只输出中位数和范围。
  • 分类变量的频数+百分比是table1的默认展示逻辑,无需额外调整;如果要修改百分比精度或格式,直接在my_stats的分类变量分支里调整即可。

内容的提问来源于stack exchange,提问作者alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 11:45:35