Is it possible to adjust the width of columns when making tables with the kable() function in knitr?
A chunk like this for a table with two columns produces a table that takes up the entire width of the document. I'd like to make the columns narrower. Can this be done with kable() or is another package needed?
This rmarkdown chunk
```{r} df <- data.frame(x = 1:10, y = 11:20) library(knitr) kable(df) ```
Produces this table
Aligning left with kable(df, align = "l")
helps a little but I'd like the two columns adjacent to each other.
By defining the table format and adding some CSS styling you can change the size of the like so: knitr::kable(x, format = "html", table. attr = "style='width:30%;'") .
The kable() function in knitr is a very simple table generator, and is simple by design. It only generates tables for strictly rectangular data such as matrices and data frames. You cannot heavily format the table cells or merge cells.
Function 'kable()' is a light weight table generator coming from 'knitr'. This package simplifies the way to manipulate the HTML or 'LaTeX' codes generated by 'kable()' and allows users to construct complex tables and customize styles using a readable syntax.
You can try out the kableExtra
package.
kable(x, "html") %>% kable_styling(full_width = F)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With