kable/kableExtra 在 group_rows 中为组标签添加上标

kable/kableExtra Add superscript to group labels in group_rows

我有一个 table 正在使用 kable 和 kableExtra 为 pdf 演示文稿创建。我想对行进行分组,我需要在行组标签中使用上标。我尝试了几种不同的方法。这是迄今为止我尝试过的一些方法的示例。

library(kable)
library(kableExtra)

foo <- data.frame(a = 1:10, b = 11:20, c = 21:30)

kable(foo, format = "latex", booktabs = T, row.names = FALSE, linesep = "", escape = FALSE) %>%
  kable_styling(latex_options = c("striped")) %>%
  group_rows("Group1<sup>a</sup>", 1, 2) %>% 
  group_rows(paste0("Group2", footnote_marker_alphabet(1), sep = ""), 3, 4) %>% 
  group_rows(expression("Group3"^a), 5, 6) %>% 
  group_rows("Group4\textsuperscript{a}", 7, 8)

我 运行 没有想法,在我的搜索中找不到任何额外的建议。

您的 group_rows() 调用中需要 escape=FALSE 才能解释 latex 命令。您似乎还需要将每个反斜杠加倍(我不太明白为什么)。之后,有几个不同的选项可以使用:

kable(foo, format = "latex", booktabs = T, row.names = FALSE, linesep = "", escape = FALSE) %>%
  kable_styling(latex_options = c("striped")) %>%
  group_rows("$\\text{Group1}^a$", 1, 2, escape = FALSE) %>% 
  group_rows(paste0("Group2\\", footnote_marker_alphabet(1), sep = ""), 3, 4, escape = FALSE) %>% 
  # I don't think expression() is helpful, doesn't seem to get converted
  # to latex
  group_rows(expression("Group3"^a), 5, 6) %>% 
  group_rows("Group4\\textsuperscript{a}", 7, 8, escape = FALSE)