如何利用kable实现行名居中对齐并调整表格间距?
解决方案
针对你遇到的两个表格展示问题,修改后的代码及说明如下:
修改后的完整代码
#| label: tbl-ConfusionMatrices #| tbl-cap: "Confusion matrices for each tool with the confusion matrix for ROI 1 and the with combined ROIs" #| tbl-subcap: #| - "Tool K1" #| - "Tool K2" #| - "Tool K3" #| - "Tool K4" library(kableExtra) library(knitr) # 工具K1表格 kable(ex, align = c("c", "c", "c"), row.names = TRUE) %>% pack_rows(index = c("ROI1" = 2, "ROIs" = 2), align = "c") %>% kable_styling() cat("<br><br>") # 增加表格间垂直间距 # 工具K2表格 kable(ex, align = c("c", "c", "c"), row.names = TRUE) %>% pack_rows(index = c("ROI1" = 2, "ROIs" = 2), align = "c") %>% kable_styling() cat("<br><br>") # 工具K3表格 kable(ex, align = c("c", "c", "c"), row.names = TRUE) %>% pack_rows(index = c("ROI1" = 2, "ROIs" = 2), align = "c") %>% kable_styling() cat("<br><br>") # 工具K4表格 kable(ex, align = c("c", "c", "c"), row.names = TRUE) %>% pack_rows(index = c("ROI1" = 2, "ROIs" = 2), align = "c") %>% kable_styling()
问题解决说明
1. 拉开表格间垂直间距
在每个表格输出后添加cat("<br><br>"),通过插入两个HTML换行标签,强制增加表格之间的垂直空白,解决行间距过近的问题。
2. 统一行名及分组行的居中对齐
kable(..., align = c("c", "c", "c")):明确指定所有列(包括行名列)居中对齐,第一个"c"对应行名,后两个对应数据列B和W。pack_rows(..., align = "c"):设置分组标题(ROI1、ROIs)也居中对齐,避免分组行与普通行的对齐方式不一致。- 修正
pack_rows的index参数:给"ROIs"指定行数2(与ROI1的行数匹配,对应数据框的后2行),避免因分组行数缺失导致的样式异常,解决最后一行行名不对齐的问题。
内容的提问来源于stack exchange,提问作者Jean-Alexandre Patteet
相关产品推荐
相关产品推荐

