在 tbl_summary 的参考页面中,它指出:
“此外,{p##} 可用于百分位数,其中 ## 是 0 到 100 之间的整数。例如,p25: quantile(probs=0.25, type=2)。”
这是否意味着使用分位数函数计算百分位数时使用的是类型 2 算法? stats::quantile 的文档报告 type = 7 是默认算法,根据我的经验,tbl_summary 似乎使用 type = 7 not type = 2。
这个准确吗?
作为后续问题,是否可以更改 tbl_summary 百分位数计算中实现的 stats::quantile 函数中的算法“type”参数?
这是类型 7(分位数默认值)与类型 2(tbl_summary 参考页)之间差异的代表性示例
data <- data.table::data.table(values = c(120, 120, 140, 210))
tbl_summary(
data,
type = list(values ~ 'continuous'),
statistic = list(values ~ "{p75}"),
digits = everything() ~ 1
)
分位数默认使用 type = 7
stats::quantile(data$values, probs = 0.75)
75% 157.5
在 tbl_summary 参考中,描述百分位数计算的“示例”使用 type = 2 作为分位数函数
stats::quantile(data$values, probs = 0.75, type = 2)
75% 175
控制 tbl_summary 中分位数使用的算法“类型”会很有帮助。这对于如何报告 IQR 特别有用 - 特别是对于小 N。
从 gtsummary v2.0 开始,百分位数
{p##}
使用 quantile(type=2)
计算。在 v2.0 版本中,默认值从 type=7
更改为 type=2
,并记录在 changlog 中。
{p##}
只是让我们的生活更轻松一点的帮手。如果您需要其他类型的分位数,您可以创建执行您喜欢的操作的函数。
library(gtsummary)
p25_t7 <- \(x) quantile(x, probs = 0.25, type = 7)
p75_t7 <- \(x) quantile(x, probs = 0.75, type = 7)
trial |>
tbl_summary(
include = age,
statistic = all_continuous() ~ "{median} ({p25_t7}, {p75_t7})",
missing = "no"
) |>
as_kable()
特点 | N = 200 |
---|---|
年龄 | 47 (38, 57) |
创建于 2024-08-19,使用 reprex v2.1.0