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

请求补充rtables R包drop_split_levels()函数的详细说明与示例

关于rtables中drop_split_levels()函数的补充说明

原rtables拆分函数参考文档中对drop_split_levels()的功能描述过于简略,仅靠现有示例难以明确其实际作用,以下补充该函数的核心功能及多参数使用示例:

核心功能

drop_split_levels() 是rtables中用于优化拆分后表格结构的工具函数,它会自动识别并移除表格中无对应数据的拆分层级(比如某个分组下没有观测值,导致拆分后该层级为空),避免表格出现冗余的空行/空列,提升输出可读性。

多参数示例

基础默认用法

当表格存在空拆分层级时,默认会移除所有空行和空列:

library(rtables)

# 构造仅含男性数据的数据集
df <- data.frame(
  gender = rep("Male", 50),
  age = rnorm(50, 50, 10)
)

# 生成初始表格(会包含无数据的Female列)
tbl <- basic_table() %>%
  split_cols_by("gender") %>%
  analyze("age") %>%
  build_table(df)

# 应用函数前的表格(保留空列)
tbl

# 应用函数后移除所有空层级
drop_split_levels(tbl)

输出差异:应用前表格保留Female空列,应用后该空列被直接移除。

指定only参数:定向移除行/列空层级

通过only参数可以仅清理行方向或列方向的空拆分层级:

# 构造含空行和空列的数据集
df2 <- data.frame(
  gender = rep("Male", 50),
  group = rep("A", 50),
  age = rnorm(50, 50, 10)
)

# 生成包含空行(group=B)和空列(gender=Female)的表格
tbl2 <- basic_table() %>%
  split_rows_by("group") %>%
  split_cols_by("gender") %>%
  analyze("age") %>%
  build_table(df2)

# 仅移除空列,保留空行结构
drop_split_levels(tbl2, only = "cols")

指定except参数:保留特定空层级

如果需要保留某个即使为空的拆分层级,可通过except参数指定该层级的变量名:

# 构造含多个空层级的数据集
df3 <- data.frame(
  gender = rep("Male", 50),
  group = rep("A", 50),
  region = rep("North", 50)
)

# 生成包含多个空层级的表格
tbl3 <- basic_table() %>%
  split_rows_by("region") %>%
  split_cols_by("gender") %>%
  split_cols_by("group") %>%
  analyze("age") %>%
  build_table(df3)

# 保留gender的空层级,移除其他空层级
drop_split_levels(tbl3, except = "gender")

内容的提问来源于stack exchange,提问作者Arianna D. Cascone

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 21:49:57