首页 > 解决方案 > 如何创建一个函数来显示 table1 包中的第 25 和第 75 个百分位数 (IQR)

问题描述

对于我的数据框中的连续变量,我想使用 R 中的 table1 包来获取一个表格,其中显示中位数(第 25-75 个百分位数)作为每个连续变量的输出。

使用 Benjamin Rich 在 table1 小插图中描述的方法:

my.render.cont <- function(x) {
    with(stats.apply.rounding(stats.default(x), digits=2), c("",
        "Mean (SD)"=sprintf("%s (&plusmn; %s)", MEAN, SD)))
}

如何将其更改为而不是显示中位数 (+/- IQR) 之类的数据以显示中位数(第 25 个百分位 - 第 75 个百分位)?

如果需要可重现的示例:

library(table1)
library(MASS)

labels <- list(variables=list(age="Age (years)",thickness="Thickness (mm)"),groups=list("", "", ""))
strata <- split(Melanoma, Melanoma$status)
 
my.render.cont <- function(x) {
    with(stats.apply.rounding(stats.default(x), digits=2), c("",
        "Mean (SD)"=sprintf("%s (&plusmn; %s)", MEAN, SD)))
}

table1(strata, labels, render.continuous=my.render.cont)

标签: r

解决方案


尝试这个:

library(table1)
library(MASS)

labels <- list(variables=list(age="Age (years)",thickness="Thickness (mm)"),groups=list("", "", ""))
strata <- split(Melanoma, Melanoma$status)

my.render.cont <- function(x) {
  with(stats.apply.rounding(stats.default(x, ), digits = 2),
       c("",
         "median (Q1-Q3)" =
           sprintf(paste("%s (",Q1,"- %s)"), MEDIAN,Q3)))
}

table1(strata, labels, render.continuous=my.render.cont)

推荐阅读