r markdown kable将表格宽度分成多个表格彼此相同

nnn*_*nnn 9 r knitr r-markdown

有没有办法告诉kable我将一个长表(超出文本或页面宽度)分成多个显示在彼此下方的表?

我的意思是,你可以这样做:

```{r}
data <- data.frame(....)
kable(data[,1:6])
kable(data[,7:12])
```
Run Code Online (Sandbox Code Playgroud)

但是,要确定在哪里打破data.frame,这需要做很多工作.有没有办法自动完成?我发现kable函数本身没有选项.

计算方法的一种方法是计算表(和标题)中最长条目的字符串宽度,并根据此情况分解表.但我仍然希望有一个很好的方法来做到这一点......

最好我想为html页面生成这样做,但是为乳胶做一个方法也很棒.

dar*_*zig 14

pander可以为你和更多人做这个 - 快速举例说明具有直接指定函数参数的拆分表功能(?pandoc.table有关详细信息,请参阅pander后台常规S3方法):

> pander(head(mtcars), split.table = 80, style = 'rmarkdown')

|         &nbsp;          |  mpg  |  cyl  |  disp  |  hp  |  drat  |
|:-----------------------:|:-----:|:-----:|:------:|:----:|:------:|
|      **Mazda RX4**      |  21   |   6   |  160   | 110  |  3.9   |
|    **Mazda RX4 Wag**    |  21   |   6   |  160   | 110  |  3.9   |
|     **Datsun 710**      | 22.8  |   4   |  108   |  93  |  3.85  |
|   **Hornet 4 Drive**    | 21.4  |   6   |  258   | 110  |  3.08  |
|  **Hornet Sportabout**  | 18.7  |   8   |  360   | 175  |  3.15  |
|       **Valiant**       | 18.1  |   6   |  225   | 105  |  2.76  |

Table: Table continues below

|         &nbsp;          |  wt   |  qsec  |  vs  |  am  |  gear  |  carb  |
|:-----------------------:|:-----:|:------:|:----:|:----:|:------:|:------:|
|      **Mazda RX4**      | 2.62  | 16.46  |  0   |  1   |   4    |   4    |
|    **Mazda RX4 Wag**    | 2.875 | 17.02  |  0   |  1   |   4    |   4    |
|     **Datsun 710**      | 2.32  | 18.61  |  1   |  1   |   4    |   1    |
|   **Hornet 4 Drive**    | 3.215 | 19.44  |  1   |  0   |   3    |   1    |
|  **Hornet Sportabout**  | 3.44  | 17.02  |  0   |  0   |   3    |   2    |
|       **Valiant**       | 3.46  | 20.22  |  1   |  0   |   3    |   1    |
Run Code Online (Sandbox Code Playgroud)

您可以通过全局选项在许多其他事物中设置字符数的全局阈值,例如:

> panderOptions('table.split.table', 80)
> panderOptions('table.style', 'grid')
> panderOptions('table.split.cells', 10)
> panderOptions('table.alignment.default', 'left')
> panderOptions('table.alignment.rownames', 'right')
> panderOptions('decimal.mark', ',')
> pander(head(mtcars))

+----------------+-------+-------+--------+------+--------+-------+
|         &nbsp; | mpg   | cyl   | disp   | hp   | drat   | wt    |
+================+=======+=======+========+======+========+=======+
|        **Mazda | 21    | 6     | 160    | 110  | 3,9    | 2,62  |
|          RX4** |       |       |        |      |        |       |
+----------------+-------+-------+--------+------+--------+-------+
|        **Mazda | 21    | 6     | 160    | 110  | 3,9    | 2,875 |
|      RX4 Wag** |       |       |        |      |        |       |
+----------------+-------+-------+--------+------+--------+-------+
|       **Datsun | 22,8  | 4     | 108    | 93   | 3,85   | 2,32  |
|          710** |       |       |        |      |        |       |
+----------------+-------+-------+--------+------+--------+-------+
|     **Hornet 4 | 21,4  | 6     | 258    | 110  | 3,08   | 3,215 |
|        Drive** |       |       |        |      |        |       |
+----------------+-------+-------+--------+------+--------+-------+
|       **Hornet | 18,7  | 8     | 360    | 175  | 3,15   | 3,44  |
|   Sportabout** |       |       |        |      |        |       |
+----------------+-------+-------+--------+------+--------+-------+
|    **Valiant** | 18,1  | 6     | 225    | 105  | 2,76   | 3,46  |
+----------------+-------+-------+--------+------+--------+-------+

Table: Table continues below

+----------------+--------+------+------+--------+--------+
|         &nbsp; | qsec   | vs   | am   | gear   | carb   |
+================+========+======+======+========+========+
|        **Mazda | 16,46  | 0    | 1    | 4      | 4      |
|          RX4** |        |      |      |        |        |
+----------------+--------+------+------+--------+--------+
|        **Mazda | 17,02  | 0    | 1    | 4      | 4      |
|      RX4 Wag** |        |      |      |        |        |
+----------------+--------+------+------+--------+--------+
|       **Datsun | 18,61  | 1    | 1    | 4      | 1      |
|          710** |        |      |      |        |        |
+----------------+--------+------+------+--------+--------+
|     **Hornet 4 | 19,44  | 1    | 0    | 3      | 1      |
|        Drive** |        |      |      |        |        |
+----------------+--------+------+------+--------+--------+
|       **Hornet | 17,02  | 0    | 0    | 3      | 2      |
|   Sportabout** |        |      |      |        |        |
+----------------+--------+------+------+--------+--------+
|    **Valiant** | 20,22  | 1    | 0    | 3      | 1      |
+----------------+--------+------+------+--------+--------+
Run Code Online (Sandbox Code Playgroud)