【问题标题】:How to create a function to display the 25th and 75th percentile (IQR) in table1 package如何创建一个函数来显示 table1 包中的第 25 和第 75 个百分位数 (IQR)
【发布时间】:2021-04-29 08:53:52
【问题描述】:

对于我的数据框中的连续变量,我想使用 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


    【解决方案1】:

    试试这个:

    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)
    

    【讨论】:

    • 工作完美,感谢 Elia!我将您的建议更改为以下以完全满足我的需求! ``` my.render.cont
    猜你喜欢
    • 2013-08-10
    • 1970-01-01
    • 2014-03-25
    • 1970-01-01
    • 2020-08-07
    • 2019-01-06
    • 2016-08-30
    • 1970-01-01
    相关资源
    最近更新 更多