如何在R语言中制作这种分组子表格?
在R语言中制作分组子表格
可以用gt或flextable包轻松实现这种分组子表格效果,以下是具体实现方法:
方法一:使用gt包
gt包专门用于制作美观的格式化表格,分组功能非常直观。
步骤示例:
- 安装并加载包
install.packages("gt") library(gt)
- 构造示例数据(以mtcars按气缸数分组为例)
data <- mtcars %>% select(cyl, mpg, disp, hp) %>% mutate(cyl = paste("气缸数:", cyl))
- 创建分组子表格
data %>% gt() %>% group_by(cyl) %>% # 按指定列分组 tab_header(title = "按气缸数分组的车辆数据") %>% tab_style( style = cell_text(weight = "bold"), locations = cells_row_groups() # 设置组标题加粗 ) %>% fmt_number(columns = c(mpg, disp, hp), decimals = 1) # 格式化数值列
这段代码会生成以「气缸数」为分组的子表格,每个组下展示对应车辆的油耗、排量、马力数据,组标题会单独加粗显示,和你需要的结构一致。
方法二:使用flextable包
flextable包更侧重灵活的表格格式调整,也能实现分组效果:
- 安装并加载包
install.packages("flextable") library(flextable) library(dplyr)
- 创建分组表格
data <- mtcars %>% select(cyl, mpg, disp, hp) flextable(data) %>% group_by(cyl) %>% set_header_labels(cyl = "气缸数", mpg = "油耗", disp = "排量", hp = "马力") %>% bold(part = "header") %>% bold(j = 1, part = "body") %>% # 分组列内容加粗 theme_booktabs() # 应用简洁的表格主题
注意事项
- 可以根据实际需求调整分组列、表格样式(比如颜色、边框、对齐方式)
- 如果需要导出为图片或PDF,gt包可以用
gtsave(),flextable可以用save_as_image()或save_as_pdf()
内容的提问来源于stack exchange,提问作者Muhammed Edib Mokresh
相关产品推荐
相关产品推荐

