我正在用 R Markdown 写作,并且有一个相当宽的列联表。我正在使用 pandoc 将 R markdown 文档转换为 PDF。
是否可以旋转或缩小 table ?理想情况下,这无需切换到 LaTeX 格式即可完成。
我的尝试:
我一直在 knitr 中滥用图形选项来尝试这样做,但是无论我使用 kable 还是 xtable,我都没有运气。我尝试过的一些排列包括:
```{r out.extra='angle=90', results='asis'}
library(knitr)
kable(iris[1:5,])
```
``{r size='footnotesize', results='asis'}
library(knitr)
kable(iris[1:5,])
```
```{r out.extra='angle=90', results='asis'}
library(xtable)
xtable(iris[1:5,])
```
```{r size='footnotesize', results='asis'}
library(xtable)
xtable(iris[1:5,])
```
所有这些都很好地显示了表格,但不要旋转它。
我用来编织的代码是:
Rscript -e "library(knitr); knit('table.Rmd', 'table.md')"
并转换为pdf:
pandoc table.md -o table.pdf
最佳答案
out.extra='angle=90'
仅适用于数字,不幸的是不适用于表格。以下是几种可能的方法:
KableExtra(旋转页面)
您可以使用有用的插件包 kableExtra
轻松旋转表格.具体来说,landscape()
函数会将表格放在单个横向页面上。这对于无法使用的宽表很有用
打印在纵向页面上。
library(kableExtra)
kable(iris[1:5,],
format = "latex", booktabs = TRUE) %>%
kableExtra::landscape()
这些功能的局限性在于它确实会强制打开一个新页面,因此根据表格的大小,它可能会留下一些空白空间。
KableExtra(缩放宽度)
您可以使用函数
kable_styling(latex_options = "scale_down")
缩放表格的宽度。 .这将强制表格为页面的宽度。 kable(iris[1:5,],
format = "latex", booktabs = TRUE) %>%
kable_styling(latex_options = "scale_down")
For more examples of the kableExtra package, check out the package here: https://haozhu233.github.io/kableExtra/awesome_table_in_pdf.pdf
观星者(转台)
其他选项可用,但这些主要需要安装额外的 LaTeX 包。例如,
stargazer
包可以使用 float.env
以横向打印表格争论:```{r, results="asis"}
stargazer(iris[1:5,],
float.env = "sidewaystable")
```
这需要
\usepackage{dcolumn}
在 LaTeX 序言中Read more about customising your LaTex preamble here: https://tex.stackexchange.com/questions/171711/how-to-include-latex-package-in-r-markdown
关于从pdf中的R markdown旋转表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21840878/