Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to fit flextable to the width of the side borders in the word_document output? Rmarkdown

I use flextable() in Rmarkdown for creating tables. I knit my code to word_document output. Does anyone have an idea how to fit the width of the table not to the content, but to the width of the side borders in the word_document output?

---
title: ""
output: word_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(flextable)
library(dplyr)
```

## R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see <http://rmarkdown.rstudio.com>.

When you click the **Knit** button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

```{r cars}
head(cars)%>%
  flextable()%>%
  theme_box()%>%
  autofit()

```

Below I am attaching two pictures:

  • the first - what my code produces, This is the results
  • the second - what I wanted to produce This is I need.

Thanks!

like image 605
Vasyl Mohytych Avatar asked Sep 06 '25 02:09

Vasyl Mohytych


1 Answers

Based on the manro solution, I write a code that makes a table with a given width, no matter how many columns there are in the table. It was also my goal, which I may not have clearly explained in my question.

```{r cars}
 i = 16.5 # width of the side borders in the word_document output (in centimeters)
 w = i*0.3937 # width of the side borders in the word_document output (in inches)
 
    # Table 1 with 2 columns 
    head(cars,3) %>% 
      flextable %>%
      width(., width = (w/(ncol(cars)))) %>% 
      theme_box() 
       
    # Table 2 with 5 columns
    head(iris,3) %>% 
      flextable %>%
      width(., width = (w/(ncol(iris)))) %>% 
      theme_box() 
```

enter image description here

like image 179
Vasyl Mohytych Avatar answered Sep 08 '25 16:09

Vasyl Mohytych