请求在rlistings列表中按key_cols分组间添加空行
解决rlistings分组间添加空行的问题
要在rlistings生成的列表中按key_cols指定的分组添加空行,可通过预处理数据集实现,以下是具体方案:
核心思路
rlistings本身没有内置的组间空行参数,我们可以先在数据框的每个分组末尾插入一行空数据(NA值),再基于处理后的数据集生成列表,以此实现分组间的分隔效果。
代码实现
1. 按多分组(USUBJID + AETOXGR)添加空行
library(rlistings) library(dplyr) adae <- ex_adae # 预处理数据:每个分组末尾插入空行 adae_with_blank <- adae %>% group_by(USUBJID, AETOXGR) %>% group_modify(~ bind_rows(.x, tibble(!!!set_names(rep(NA, ncol(adae)), colnames(adae))))) %>% ungroup() %>% slice(-n()) # 移除最后一行多余的空行 # 生成带分组空行的列表 lsting <- as_listing( df = adae_with_blank, disp_cols = c("ARM", "AGE", "SEX", "RACE", "AEDECOD", "AESEV"), key_cols = c("USUBJID", "AETOXGR") ) head(lsting, 20)
2. 按单一分组(仅USUBJID)添加空行
如果只需要按受试者ID(USUBJID)分隔,调整group_by的参数即可:
adae_with_blank <- adae %>% group_by(USUBJID) %>% group_modify(~ bind_rows(.x, tibble(!!!set_names(rep(NA, ncol(adae)), colnames(adae))))) %>% ungroup() %>% slice(-n())
代码说明
group_modify:遍历每个分组,在每组数据后绑定一行全为NA的空行slice(-n()):移除最后一行多余的空行,避免列表末尾出现不必要的空白- 生成的列表会在每个目标分组后显示空行,大幅提升不同组内容的可读性
内容的提问来源于stack exchange,提问作者Huan Lu
相关产品推荐
相关产品推荐

