如何在多列上拆分kable?

Dam*_*mbo 6 r knitr r-markdown

我试图在RMarkdown中为长桌制作一个"纵向"布局kable.例如,我希望将表拆分为两列,如下例所示:

dd <- data.frame(state=state.abb, freq=1:50)
kable(list(state=dd[1:25,], state=dd[26:50,]))
Run Code Online (Sandbox Code Playgroud)

但是,这个hack产生的输出看起来比正常kable输出更差(例如标题不是粗体).是否有"适当"的方式来使用kable

Pet*_*ter 8

kable是一个很好的工具,但有局限性。对于您所描述的表格类型,我将根据所需的输出使用两种不同工具中的一种。

  • Hmisc::latex 为了 .Rnw -> .tex -> .pdf

  • htmlTable::htmlTable 为了 .Rmd -> .md -> .html

下面是后者的一个例子:

dd <- data.frame(state=state.name, freq=1:50)
dd2 <- cbind(dd[1:25, ], dd[26:50, ])

library(htmlTable)
htmlTable(dd2,
          cgroup = c("Set 1:25", "Set 26:50"),
          n.cgroup = c(2, 2),
          rnames = FALSE)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明


cra*_*dul 7

您仍然可以使用 Kable,只需对代码稍作修改即可。

dd <- data.frame(state=state.abb, freq=1:50)

knitr::kable(
  list(dd[1:25,], dd[26:50,]),
  caption = 'Two tables placed side by side.',
  booktabs = TRUE
)
Run Code Online (Sandbox Code Playgroud)

这段代码是对此的修改。您还可以在该页面上找到有关表格的更多信息