【问题标题】:tbl_summary ( gtsummary) transpose with p-valuestbl_summary ( gtsummary) 转置 p 值
【发布时间】:2020-11-03 17:08:19
【问题描述】:

我想知道是否有办法组成这样的表格:

library(gtsummary)
data(trial)

add_p_ex1 <-
  trial[c("marker",  "trt")] %>%
  tbl_summary(by = trt) %>%
  add_p()


add_p_ex2 <-
  trial[c("marker",  "death")] %>%
  tbl_summary(by = death) %>%
  add_p()


as1=add_p_ex1$table_body
as2=add_p_ex2$table_body
write.csv(rbind(as1, as2), file='temp1.csv')

输出是 as1 和 as2 的转置版本,如下所示: 理想情况下,对于 K - 连续变量(例如标记 1、标记 2、...制造商 k)和 P 个分类变量。

       Marker Level (ng/mL) Pvalue
trt 

drug A  0.84 (0.24, 1.57)   0.084746992242773
drug B  0.52 (0.19, 1.20)   

Death   

0     0.73 (0.23, 1.33)    0.605276987642371
1     0.57 (0.20, 1.45) 

【问题讨论】:

    标签: gtsummary


    【解决方案1】:

    可以像这样得到你的表,我在下面提供了一个代码示例。但是,我不确定这是否是获得所需内容的最简单方法。

    library(gtsummary)
    library(tidyverse)
    
    # function to transpose a tbl_summary table
    gtsummary_transpose <- function(data, con_var, cat_var) {
      tbl <- data[c(con_var,  cat_var)] %>%
        tbl_summary(by = cat_var, missing = "no") %>%
        add_p() %>%
        modify_header(stat_by = "{level}", 
                      p.value = "p.value",
                      label = "label") %>%
        as_tibble() %>%
        select(-label) %>%
        pivot_longer(cols = -p.value) %>%
        select(name, value, p.value) 
      
      # add a header row
      bind_rows(
        tibble(name = attr(data[[cat_var]], "label") %||% cat_var),
        tbl
      ) %>%
        fill(p.value, .direction = "up") %>%
        mutate(p.value = ifelse(row_number() == 1, p.value, NA))
    }
    
    gtsummary_transpose(trial, "marker", "trt")
    
    # transose multiple tables, and stack them 
    tibble(variable = c("trt", "grade")) %>%
      mutate(
        tbl = map(variable, ~gtsummary_transpose(trial, "marker", .x))
      ) %>%
      unnest(cols = tbl) %>%
      gt::gt() %>%
      gt::cols_hide(vars(variable)) %>%
      gt::cols_label(name = "Characteristic", value = "Marker Level", p.value = "p-value") %>%
      gt::fmt_missing(columns = everything(), missing_text = "")
    

    【讨论】:

      猜你喜欢
      • 2023-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-09
      相关资源
      最近更新 更多