当 tbl_summary() 使用 stats::quantiles 函数计算百分位数时,它默认使用类型 7 还是类型 2 算法?

问题描述 投票:0回答:1

在 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。

r quantile gtsummary
1个回答
0
投票

从 gtsummary v2.0 开始,百分位数

{p##}
使用
quantile(type=2)
计算。在 v2.0 版本中,默认值从
type=7
更改为
type=2
,并记录在 changlog 中。

enter image description here

{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

© www.soinside.com 2019 - 2024. All rights reserved.