如何将kable表格拆分成多列?

13
我正试图使用kable在RMarkdown中制作具有“纵向”布局的长表格。例如,我希望一个表格分成两列,就像下面的示例一样:
dd <- data.frame(state=state.abb, freq=1:50)
kable(list(state=dd[1:25,], state=dd[26:50,]))

不过,使用这种方法生成的输出结果比正常的kable输出结果要差很多(例如标题没有加粗)。是否有一种“正确”的方法可以使用kable来实现这一点?

2个回答

10

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)

在此输入图片描述


6

您仍可以使用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
)

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接