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

Rmarkdown中collapse_rows的valign='middle'对齐失效问题求助

解决kableExtra合并单元格垂直居中问题

我用RMarkdown生成PDF表格时,使用kable及kableExtra的collapse_rows合并单元格,设置了valign="middle"但合并后的单元格(如"Example1")并未与对应列的中间行(第二列的数字"2")垂直对齐。

原代码如下:

library(kableExtra)
library(tidyr)
library(dplyr)

data <- data.frame(A=c(rep("Example1",3),rep("Example2",3)),B=1:6,C=c(1,1,1,2,2,2),D=6:1,E=c(1,1,1,2,2,2))

knitr::kable(data,
             col.names = linebreak(c("","B","C","B", "C"),align = 'c'),
             caption = "Example.",
             format = "latex",
             booktabs = T,
             linesep="\\addlinespace",
             escape = F,
             align = "c") %>% 
  add_header_above(.,c(' '=1,'Ascending'=2,'Descending'=2),
                   bold = T,
                   escape = F) %>%
  collapse_rows(columns = c(1,3,5), valign = "middle") %>%
  kable_styling(font_size = 10,
                latex_options = c("striped", "hold_position"))

表格效果:
表格效果

解决方案

问题在于collapse_rows的valign参数仅针对HTML输出,生成LaTeX格式的PDF表格时,需要使用latex_valign参数指定垂直对齐方式,设置为"m"即可实现合并单元格的垂直居中。

修改后的完整代码:

library(kableExtra)
library(tidyr)
library(dplyr)

data <- data.frame(A=c(rep("Example1",3),rep("Example2",3)),B=1:6,C=c(1,1,1,2,2,2),D=6:1,E=c(1,1,1,2,2,2))

knitr::kable(data,
             col.names = linebreak(c("","B","C","B", "C"),align = 'c'),
             caption = "Example.",
             format = "latex",
             booktabs = T,
             linesep="\\addlinespace",
             escape = F,
             align = "c") %>% 
  add_header_above(.,c(' '=1,'Ascending'=2,'Descending'=2),
                   bold = T,
                   escape = F) %>%
  collapse_rows(columns = c(1,3,5), valign = "middle", latex_valign = "m") %>%  # 添加latex_valign参数
  kable_styling(font_size = 10,
                latex_options = c("striped", "hold_position"))

内容的提问来源于stack exchange,提问作者Laure Tomás Daza

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 19:41:23