首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >table1函数中的IQR、四分位数和n

table1函数中的IQR、四分位数和n
EN

Stack Overflow用户
提问于 2021-10-15 06:52:15
回答 2查看 1.2K关注 0票数 0

我试图为不同变量(连续的、分类的)按组分层的描述性统计数据创建一个表。例如,dataset我使用来自生存包的“肺”数据集:

代码语言:javascript
代码运行次数:0
运行
复制
library(survival)
library(table1)

mydata = survival::lung

mydata$sex <- as.factor(mydata$sex)

t1 <- table1(~ age + ph.ecog + ph.karno | sex, data = mydata, overall = FALSE)
t1

对于连续变量,我想得到以下特性:

  • min,最大
  • 25%四分位数中位数(SD) 75 %四分位数区间
  • n个组和变量(即分析所包含的数字)。默认情况下会报告缺失值--我想报告可用的行数(即每个组(列顶部)的行数)减去缺失值(这不是很重要)

目前,最小,最大的报告在[]后面的中位数。

可以自定义这个table1函数吗?我在文件里找不到线索..。

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2021-10-15 12:54:35

多亏了Bloxx,我在这里找到了解决方案:

https://benjaminrich.github.io/table1/vignettes/table1-examples.html#using-abbreviated-code-to-specify-a-custom-renderer

参数是render.continuous函数中的“tablet1”。

谢谢!

票数 3
EN

Stack Overflow用户

发布于 2022-06-29 21:01:53

代码语言:javascript
代码运行次数:0
运行
复制
render.NEW <- function(x, name, data2, ...) {
    MIN <- min(x, na.rm = T)
    MAX <- max(x, na.rm = T)
    median <- median(x, na.rm = T)
    Q1 <- quantile(x, 0.25, na.rm = T)
    Q3 <- quantile(x, 0.75, na.rm = T)
    N = length(x) - sum(is.na(x))
    
    out <- c("",
             "[min, max]" = paste0("[", sprintf("%.2f", MIN), ", ", sprintf("%.2f", MAX), "]"),
             "Median [Q1, Q3]" = paste0(sprintf("%.2f", median), " [", sprintf("%.2f", Q1), ", ", sprintf("%.2f", Q3), "]"),
             "N" = N)
    out
}

table1(~ age + ph.ecog + ph.karno | sex, data = mydata, overall = FALSE, 
   render = render.NEW)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69580912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档