在分组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
相关产品推荐
相关产品推荐

