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

jam*_*121 3 r knitr r-markdown kableextra kable

我有一个使用 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)
Run Code Online (Sandbox Code Playgroud)

我的想法已经用完了,并且无法在我的搜索中找到任何其他建议。

Mar*_*ius 5

您需要escape=FALSEgroup_rows()调用中允许解释乳胶命令。您似乎还需要将每个反斜杠加倍(我不太明白为什么)。之后,有几个不同的选项可以工作:

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)
Run Code Online (Sandbox Code Playgroud)