Регулировка ширины таблиц, сделанных с помощью kable() в документах RMarkdown

Можно ли настроить ширину столбцов при создании таблиц с помощью функции kable() в knitr?

Такой блок для таблицы с двумя столбцами создает таблицу, которая занимает всю ширину документа. Я бы хотел сделать столбцы более узкими. Можно ли это сделать с помощью kable() или другого пакета?

Этот фрагмент rmarkdown

```{r}
df <- data.frame(x = 1:10,
           y = 11:20)
library(knitr)
kable(df)
```

Производит эту таблицу введите описание изображения здесь

Выравнивание слева с помощью kable(df, align = "l") помогает немного, но мне бы хотелось, чтобы два столбца смежны друг с другом.

Ответ 1

Вы можете попробовать пакет kableExtra.

kable(x, "html") %>%
  kable_styling(full_width = F)

Ответ 2

Моей новой любимой вещью является flextable пакет, потому что 1) таблицы красивы, 2) вы можете более легко управлять такими вещами, как ширина и размер шрифта, и 3) они хорошо отображают HTML и Word. Используя ваши данные:

'''{r}
library(flextable)
library(magrittr)
df <- data.frame(x = 1:10, y = 11:20)
df %>% regulartable() %>% autofit() %>% 
width(j=~x,width=1) %>% width(j=~y,width=1)
'''

Если оба значения width равны 1, столбцы расположены близко друг к другу:

flextable-1

Если вы настроите последнюю строку на width(j=~x,width=2) %>% width(j=~y,width=2) таблица выглядит так:

flextable-2