将kable表格缩放以适应页面宽度

36

如何使用kable函数在pdf中格式化表格?因为我的输出表格宽度超过了pdf的宽度。这里是一个示例:

---
output: pdf_document
---

```{r}
df <- cbind(mtcars[1:5,], mtcars[1:5,])
knitr::kable(df)
```

进入图像描述


2个回答

50

一种选择是使用kableExtra包中的kable_styling。选项latex_options="scale_down"将使表格适应页面边距。有关所有格式设置选项的详细示例,请参见vignette

---
output: pdf_document
---

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

```{r}
kable(cbind(mtcars[1:5,], mtcars[1:5,]))
```

```{r}
kable(cbind(mtcars[1:5,], mtcars[1:5,]), format="latex", booktabs=TRUE) %>% 
  kable_styling(latex_options="scale_down")
```

输入图像描述


你好,能解释一下 "%>%" 的用途吗?我是R语言的新手。 - Dylan Russell
这是一个“管道”运算符。它将第一个函数的结果传递到第二个函数中。请查看此dplyr教程,以了解在R中使用管道进行数据操作的常见用例。 - eipi10
1
kable_styling 中添加 hold_position=TRUE - eipi10
有没有一种方法只设置边距限制,使表格不超出该限制? - user35131
如果您的文本脚注非常长,在scale_down之后超出了表格,该怎么办?似乎scale_down不适用于footnote - Jason Goal
显示剩余4条评论

14
请注意,如果您正在使用longtable,这个答案说:
“由于longtable不支持resizebox,因此您不能在latex_options中使用“scale_down”选项。”
但是,他们建议使用font_size,例如:
kable(df, "latex", longtable = T, booktabs = T) %>%
  kable_styling(font_size = 7)

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