如何使用table1包仅获取中位数与IQR而非均数/中位数[范围]?
使用table1包仅展示中位数和IQR的方法
当然可以,通过自定义render参数就能实现只输出中位数和IQR,替换默认的均数/中位数[范围]格式,具体用法如下:
加载包并构造示例数据
先准备测试数据用于演示:library(table1) # 构造示例数据集 set.seed(123) df <- data.frame( Group = factor(sample(c("A", "B"), 100, replace=TRUE)), Age = rnorm(100, 50, 10), BMI = rnorm(100, 25, 3) )自定义连续变量的渲染函数
针对连续变量,定义仅返回中位数和IQR的函数,覆盖默认渲染逻辑:# 自定义连续变量的输出规则 render_continuous <- function(x) { med <- median(x, na.rm = TRUE) iqr_val <- IQR(x, na.rm = TRUE) # 格式化输出,这里保留1位小数,可按需调整 sprintf("%.1f (%.1f)", med, iqr_val) }调用table1生成目标表格
在table1函数中,通过render参数指定自定义的渲染规则:table1(~ Age + BMI | Group, data = df, render = list( continuous = render_continuous ))
生成的表格将仅展示每个变量的中位数和IQR,不会包含均数或范围信息。如果需要调整小数位数,直接修改sprintf中的格式符即可(比如%.2f表示保留两位小数)。
内容的提问来源于stack exchange,提问作者alex
相关产品推荐
相关产品推荐

