You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除tbl_hierarchical输出中overall_row行的百分比数值

如何移除tbl_hierarchical输出中overall_row行的百分比数值

嘿,我来帮你搞定这个需求!你想移除tbl_hierarchical输出里overall_row(也就是你设置的"Any Adverse Event"行)的百分比,只保留计数,这个可以通过gtsummary的表格自定义功能轻松实现。

首先先回顾下你的原代码逻辑,我们在这个基础上做修改就行:

library(cards)
library(gtsummary)

ADAE_subset <- cards::ADAE |> 
  dplyr::filter( 
    AESOC %in% unique(cards::ADAE$AESOC)[1:5], 
    AETERM %in% unique(cards::ADAE$AETERM)[1:5] 
  )

接下来是核心的表格生成+修改步骤,我们用modify_table_body函数来定位并修改overall_row的内容:

tbl_hierarchical(
  data = ADAE_subset,
  variables = c(AESOC, AETERM),
  by = TRTA,
  denominator = cards::ADSL |> mutate(TRTA = ARM),
  id = USUBJID,
  digits = everything() ~ list(p = 1),
  overall_row = TRUE,
  label = list(..ard_hierarchical_overall.. = "Any Adverse Event")
) |>
  modify_table_body(
    function(data) {
      # 找到overall_row对应的行索引
      overall_row_pos <- which(data$variable == "..ard_hierarchical_overall..")
      # 针对所有统计结果列,只提取括号前的数字部分
      stat_cols <- grepl("^stat_", names(data))
      data[overall_row_pos, stat_cols] <- lapply(
        data[overall_row_pos, stat_cols],
        function(cell_content) stringr::str_extract(cell_content, "^\\d+")
      )
      data
    }
  )

代码解释:

  1. modify_table_body是gtsummary中用来直接修改表格底层数据集的工具,非常适合这种精细化的格式调整。
  2. 我们先通过data$variable == "..ard_hierarchical_overall.."定位到你设置的"Any Adverse Event"行。
  3. 然后筛选出所有以stat_开头的列(这些就是各个处理组的结果列,比如Placebo、Xanomeline High Dose对应的列),用stringr::str_extract提取内容开头的数字(也就是计数部分),替换掉原来带百分比的完整内容。

这样处理之后,你的表格就会变成你想要的样子:

  • "Any Adverse Event"行只显示26、42、40
  • 其他行的百分比会正常保留,完全符合你的预期~

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 08:03:10