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

Rtables/tern分组表格转Shiny HTML时行分组缩进异常问题

解决rtables/tern AE层级表格转HTML后缩进混乱的问题

1. 确认表格层级定义的正确性

先检查手动构建表格时的层级嵌套逻辑是否严格遵循AEBODSYS -> AEHLGT -> AEHLT的顺序,避免因层级拆分顺序错误导致缩进混乱。示例正确的层级拆分代码:

library(tern)
library(rtables)

# 基于tern/rtables构建AE三层级表格
ae_tbl <- basic_table() %>%
  split_cols_by("ARM") %>%  # 按治疗组拆分列
  # 第一层:系统器官分类
  split_rows_by("AEBODSYS", split_fun = trim_levels_in_group("AEBODSYS")) %>%
  # 第二层:高位组术语
  split_rows_by("AEHLGT", split_fun = trim_levels_in_group("AEHLGT")) %>%
  # 第三层:高位术语
  split_rows_by("AEHLT", split_fun = trim_levels_in_group("AEHLT")) %>%
  # 分析不良事件指标(示例:严重AE)
  analyze_vars("AESER", afun = function(x) list(n = sum(x))) %>%
  build_table(adat)  # adat为你的AE数据集

2. 自定义CSS强制修正层级缩进

rtables生成的HTML表格中,不同层级的行元素会自动带有level-1、level-2、level-3类名,你可以在Shiny中通过自定义CSS直接指定每个层级的左内边距,彻底解决缩进混乱问题:

library(shiny)

ui <- fluidPage(
  # 注入自定义CSS样式
  tags$style(HTML("
    /* 针对rtables表格的层级行设置统一缩进 */
    .rtables-table .level-1 { padding-left: 1.5em; }
    .rtables-table .level-2 { padding-left: 3em; }
    .rtables-table .level-3 { padding-left: 4.5em; }
    /* 可选:调整表头样式 */
    .rtables-table th { text-align: center; }
  ")),
  htmlOutput("ae_html_table")
)

server <- function(input, output) {
  output$ae_html_table <- renderUI({
    # 将rtables对象转为HTML并渲染
    HTML(as_html(ae_tbl))
  })
}

shinyApp(ui, server)

你可以根据需求调整padding-left的数值,确保层级缩进符合逻辑。

3. 使用tern专用AE表格函数

tern包提供了table_ae_summary这类专门针对不良事件汇总的封装函数,内置了层级缩进的处理逻辑,能避免手动拆分层级带来的问题:

# 使用tern专用函数构建AE汇总表格
ae_tbl <- table_ae_summary(
  df = adat,
  vars = c("AEBODSYS", "AEHLGT", "AEHLT"),  # 指定层级顺序
  col_split = "ARM",  # 列拆分变量
  ae_suffix = "AESER"  # 要分析的AE指标后缀
) %>% build_table()

用这个函数生成的表格转HTML时,缩进逻辑通常会自动适配正确。

4. 更新包版本排除bug

如果以上方法都无效,可能是rtables或tern的旧版本存在HTML渲染bug,尝试更新到最新版本:

install.packages(c("rtables", "tern"), dependencies = TRUE)

内容的提问来源于stack exchange,提问作者Vatsal Garg

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 18:30:04