如何在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
相关产品推荐
相关产品推荐

