在分组的 Kable 中重复列标题

Repeat Column Headers In Grouped Kable

提问人:tangerine7199 提问时间:10/6/2023 更新时间:10/6/2023 访问量:33

问:

我有一个数据帧:

 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))

我正在尝试创建一个带有重复标头的分组 kable 输出。你会看到我有一个按类型分组以避免混淆的功能,但它不允许我重复year_1和year_2。我尝试添加并出现错误header_abovecol.names

Error in round(x[, j], digits[j]) : 
  non-numeric argument to mathematical function

df1  %>%
  kbl(caption = '<b>Table 5</b>-Comparison of Types and Years', align='l',  col.names = "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")
r kable kableextra

评论


答:

1赞 r2evans 10/6/2023 #1

您的错误与分组标头无关,您在调用中有一个拼写错误:kbl

  kbl(..., col.names = "inst", "year 1", "year 2", "year 1", "year 2") %>%
#                     ^^^ missing a c( to start the vector, and a closing )

试试这个:

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")

评论

1赞 tangerine7199 10/6/2023
啊感谢您的帮助!
1赞 r2evans 10/6/2023
找到这个问题的一个技巧是逐个删除 -pipe 中的调用,以确认错误是在哪个函数中发出的。在这种情况下,它缩小到第一个,偶然的检查暗示它应该可能是一个向量,但事实并非如此。 调试 R 有时可能很困难,最好使用这些技术:-)%>%col.names