如何在R markdown中对列进行分组?

时间:2018-04-13 00:56:48

标签: markdown knitr pandoc kable kableextra

我正在尝试使用kable生成一个表并将输出保存为markdown。我后来使用pandoc将markdown转换为pdf。对于我的表格,我想将表格列分为两组。看来这可以通过kableExtra" add_header_above"来实现。功能,但不幸的是输出不能存储为降价。有没有办法使用markdown对列进行分组?我正在粘贴下面的虚拟代码。感谢所有意见和建议。

library(knitr)
library(kableExtra)
test <- head(mtcars, head=10)
test <- test[,c(1:6)]
kable(test, "markdown")

我尝试过像下面这样对列进行分组,但它似乎无法正常工作。

       |                  |     GroupA     |      GroupB     |
       |:-----------------|:---------------|:----------------|
       |                  |  mpg| cyl| disp|  hp| drat|    wt|
       |:-----------------|----:|---:|----:|---:|----:|-----:|
       |Mazda RX4         | 21.0|   6|  160| 110| 3.90| 2.620|
       |Mazda RX4 Wag     | 21.0|   6|  160| 110| 3.90| 2.875|
       |Datsun 710        | 22.8|   4|  108|  93| 3.85| 2.320|
       |Hornet 4 Drive    | 21.4|   6|  258| 110| 3.08| 3.215|
       |Hornet Sportabout | 18.7|   8|  360| 175| 3.15| 3.440|
       |Valiant           | 18.1|   6|  225| 105| 2.76| 3.460|

1 个答案:

答案 0 :(得分:0)

为什么要将输出存储在markdown中,然后later using pandoc to convert markdown to pdf.为什么不在一步中存储?

library(knitr)
library(kableExtra)

test <- head(mtcars, head = 10)
test <- test[, c(1:6)]

p <- kable(test) %>%
  add_header_above(c(" " = 1, "Group 1" = 3, "Group 2" = 3))
p

根据您选择的输出,您将获得一个包含分组标题的表格,其中包含&#34; HTML&#34;或&#34; PDF&#34;输出

您可以使用p存储&#34; HTML&#34;输出并使用pandoc二进制文件将其转换为markdown。但是二进制文件

  

pandoc本身对R一无所知。除了从它创建的输出中获取代码的形而上学困难之外,你还有一个工具不匹配。

(引自Dirk Edelbuettel

如果您使用直接转换为PDF,则不需要p