我用R Markdown写,有一个很宽的列联表。我正在使用pandoc将R markdown文档转换为PDF。
可以旋转或缩小table吗?理想情况下,这将在不必切换到LaTeX格式的情况下完成。
我的尝试:
我一直在滥用knitr中的figure选项来尝试这一点,但无论我使用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,])
library(xtable)
xtable(iris[1:5,])
所有这些都可以很好地显示表,但不能旋转它。
我用来编织的代码是:
Rscript -e "library(knitr); knit('table.Rmd', 'table.md')"
并转换为PDF:
pandoc table.md -o table.pdf
4条答案
按热度按时间a11xaf1n1#
out.extra='angle=90'
只适用于Figures,不幸的是不适用于表。以下是几种可能的方法:KableExtra(旋转页面)
您可以使用有用的插件包
kableExtra
轻松地旋转table。具体来说,landscape()
函数将把表格放在一个横向页面上。对于不能在纵向页面上打印的宽表格,它很有用。这些函数的局限性在于它确实会强制创建一个新页面,因此根据表的大小,它可能会留下一些空白空间。
KableExtra(缩放宽度)
您可以使用函数
kable_styling(latex_options = "scale_down")
缩放表格的宽度。这将强制表格与页面的宽度一致。有关kableExtra软件包的更多示例,请在此处查看该软件包:https://haozhu233.github.io/kableExtra/awesome_table_in_pdf.pdf
Stargazer(旋转桌)
其他选项也可用,但这些都需要安装额外的LaTeX软件包。例如,
stargazer
包可以使用float.env
参数横向打印表格:hgc7kmma2#
您可以在Rmd文件中添加一些LATEX代码:
Lorem ipsum...
\elandscape
Some other text on a portrait page.
uxhixvfz3#
你能用t()吗?
如果你的表仍然很长,把它分成多个表。例如:
dwthyt8l4#
如果你想让标题和表格在同一页上,还有两个解决方案可以使用kable和kableExtra:
Report page -
output: pdf_document
header-includes:
\usepackage{lscape}
\usepackage{pdfpages}
\usepackage{graphicx}
\usepackage[figuresright]{rotating}
Some Title