如何限制在kable中打印的行数

时间:2018-08-08 23:19:49

标签: r r-markdown knitr kable

使用rmarkdown渲染pdf文档时,我们可以使用三个选项来打印data.frame:默认,kable和tibble(请参阅here

使用默认选项,可以使用以下选项限制打印的行数:max.print

对于小技巧,我们可以使用:dplyr.print_max

我找不到限制kable的行数的方法。有可能吗?

2 个答案:

答案 0 :(得分:3)

kable将传递给它的完整数据帧呈现为输出文档中的表格。 AFAIK没有参数将限制行数。但是,您可以预选择输出表中的行数(例如kable(head(dat))kable(dat[1:5, ]))。如果要避免每次都选择行,可以编写一个辅助函数来限制打印的行数。例如:

---
output: pdf_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
library(knitr)
```

```{r}
my_kable = function(x, max.rows=6, ...) {
  kable(x[1:max.rows, ], ...)
}
```

```{r}
my_kable(mtcars, caption="My first caption")
```

```{r}
iris$Sepal.Length = 1000 * iris$Sepal.Length
my_kable(iris, 3, caption="My second caption", format.args=list(big.mark=","))
```

enter image description here

答案 1 :(得分:0)

一个非常简单的解决方案是将kable包裹在head周围:

kable(head(mtcars, n = 5))