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

在分组Kable中重复列表头时遇报错问题求助

问题解决:kable重复表头分组表格

错误原因

你的代码报错是因为col.names参数传递错误——你直接写了多个字符串,没有用c()包裹成向量,导致kbl()函数解析参数时出现混乱,进而在处理数值列的round操作时触发非数值参数的错误。

修正后的代码

library(kableExtra)

df1 <- data.frame(inst = c("A", "B", "C", "D", "E", "F", "G"), 
                 year_1_type1 = c(1,5,3,8,7,9,4), 
                 year_2_type1 = c(5,7,8,3,5,2,6), 
                 year_1_type2 = c(1,5,3,8,7,9,4), 
                 year_2_type2 = c(5,7,8,3,5,2,6))

df1 %>%
  kbl(caption = '<b>Table 5</b>-Comparison of Types and Years', 
      align='l',  
      col.names = c("inst", "year 1", "year 2", "year 1", "year 2")) %>%
  kable_classic(full_width = T, html_font = "Arial Narrow") %>% 
  kable_styling() %>%
  add_header_above(c(" " = 1, "Type 1" = 2, "Type 2" = 2), align = "l")

关键说明

  • col.names必须是向量形式(用c()包裹所有列名),确保和数据框的列数完全匹配;
  • add_header_above的参数是一个命名向量,数值对应下方需要合并的列数,这里" "=1对应第一列inst,"Type 1"=2对应它下面的两个"year 1"/"year 2"列,"Type 2"=2同理,完美实现分组表头+重复子表头的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 13:05:02