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')
| | 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
| | 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))
+----------------+-------+-------+--------+------+--------+-------+
| | 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
+----------------+--------+------+------+--------+--------+
| | 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)