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

如何在R的Kable中移除单个列下方的\cmidrule?

解决方法

有两种常用方式可以实现移除Year列下方的\cmidrule,仅保留Group 1-3表头下的横线:

方法1:替换生成的LaTeX代码

利用字符串替换直接去掉Year对应的\cmidrule行,操作简单直接:

latex <- kbl(df, format='latex', booktabs = T, escape = F, digits=3, col.names = labst) %>% 
  add_header_above(c("Year" = 1, "Group 1" = 2, "Group 2" = 2, "Group 3" = 2, "Group 4" = 2)) %>%
  gsub(pattern = "\\\\cmidrule\\(lr\\)\\{1-1\\}", replacement = "", x = .)

方法2:手动控制表头横线

先关闭add_header_above的自动横线生成,再手动给指定列添加\cmidrule,更灵活可控:

latex <- kbl(df, format='latex', booktabs = T, escape = F, digits=3, col.names = labst) %>% 
  add_header_above(
    c("Year" = 1, "Group 1" = 2, "Group 2" = 2, "Group 3" = 2, "Group 4" = 2),
    line = FALSE  # 关闭所有自动生成的表头横线
  ) %>%
  add_cmidrule(left = "l", right = "r", columns = 2:3) %>%  # 给Group 1添加横线
  add_cmidrule(left = "l", right = "r", columns = 4:5) %>%  # 给Group 2添加横线
  add_cmidrule(left = "l", right = "r", columns = 6:7)     # 给Group 3添加横线

注:这里的列范围是根据你的表头分组计算的——Year占第1列,Group1占2-3列,Group2占4-5列,Group3占6-7列,你可以根据实际表格列数调整columns参数的数值。

内容的提问来源于stack exchange,提问作者atatam_anukah

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 00:15:18