1
votes

I am trying to display a table from an SQL query to a pdf by using Rmarkdown. However, the table I get is too wide and it does not fit in the document.

I have been recommended to use the Pander package, and so I tried to use the pandoc.table() function which works greatly on the console, but for some reason it stops my document from rendering in Rmarkdown.

The code looks kinda like this :

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

It is a very long query but, as I said, it works both on MySQL and R console (working on RStudio).

So, when I do

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"))

the results that get printed are too wide to fit in the PDF.

I do not know how can I solve this. I tried with pandoc.tables() from pander package, but the format of the result seems to be very humble compared to the options I have in kable.

1
@JAQuent I tried like they said, but changing the format to Markdown compresses the table so much everything gets collapsed. I would need something more of the likes of chopping the table in different sections so it fits.Marc BF

1 Answers

6
votes

You have to use the scale_down option from kableExtra. The scale_down option is going to fit your table on one page when it is too wide. The police font will also be reduce.

Here is an example of the code you could use :

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