表格太宽,无法容纳Markdown生成的PDF

时间:2019-05-22 10:22:11

标签: mysql r markdown r-markdown kable

我试图通过使用Rmarkdown从SQL查询到pdf显示表格。但是,我得到的表太宽了,不能容纳在文档中。

建议使用Pander程序包,因此我尝试使用在控制台上很好用的pandoc.table()函数,但是由于某些原因,它阻止了我的文档在Rmarkdown中呈现。

代码看起来像这样:

rz = dbSendQuery(mydb, "select result.id result_id, company.id company_id, (...)")
datz = fetch(rz, n=-1)

这是一个很长的查询,但是,正如我说的那样,它在MySQL和R控制台上都可以工作(在RStudio上工作)。

所以,当我这样做

kable(datz, "latex", col.names = c(colnames(datz)), caption=paste('This is a sample table')) %>% kable_styling(latex_options = "striped") %>% column_spec(1, bold = T, color = "red"))

打印的结果太宽,无法容纳在PDF中。

我不知道该如何解决。我尝试使用pander包中的pandoc.tables(),但与kable中的选项相比,结果的格式似乎非常谦虚。

1 个答案:

答案 0 :(得分:3)

您必须使用kableExtra的scale_down选项。如果scale_down选项太宽,它将使您的表格适合一页。警察字体也将减少。

以下是您可以使用的代码示例:

kable(your_dt, "latex", booktabs = T) %>%
kable_styling(latex_options = c("striped", "scale_down"))