如何用gt()将行组名移至存根表头并居中存根标签
列联表格式调整解决方案
1. 将行组名称移至存根表头(与其他列名同行)
tbl_cross默认会把行变量标签作为独立行组显示在存根上方,要将其移至存根表头,需两步操作:
- 在
tbl_cross后调用remove_row_groups()移除默认生成的行组 - 转换为gt对象后,用
tab_stubhead_label()将存根表头文本设置为原行组名称(此处为"Race")
2. 行标签居中对齐
之前的样式设置未生效,是因为未精准指定存根内所有行的位置。修改为:
在tab_style()中指定locations = cells_stub(rows = everything()),确保所有行标签都应用居中样式
修改后的完整代码
RacexEth <- REDCapTab %>% filter(PTDbloods >= 1) %>% tbl_cross(mrace8905, eth8905, label = list(mrace8905 ~ "Race", eth8905 ~ "Ethnicity")) %>% bold_labels() %>% remove_row_groups() %>% modify_column_alignment(columns = everything(), align = "center") %>% as_gt() %>% cols_width(everything() ~ px(140)) %>% cols_align(align = "center", columns = everything()) %>% tab_stubhead_label(label = "Race") %>% tab_header(title = md("**Race by Ethnicity**")) %>% tab_style( style = list(cell_text(align = "center")), locations = cells_stub(rows = everything()) ) RacexEth
效果说明
- 移除行组后,存根不再显示单独的行组标题,原行组名称会移至存根表头,与其他列名处于同一水平行
cells_stub(rows = everything())确保存根内所有行标签都被居中对齐,覆盖默认的左对齐样式
内容的提问来源于stack exchange,提问作者Kevin Sanchez
相关产品推荐
相关产品推荐

