Ответ 1
Вы хотите передать kable
вектор строк выравнивания, равный количеству столбцов. Как упоминалось в файле справки,
выравнивание столбцов: вектор символов, состоящий из "l" (слева), "c" (в центре) и/или "r" (справа); по умолчанию числовые столбцы выравниваются по правому краю, а другие столбцы выравниваются по левому краю; если align = NULL, используется выравнивание по умолчанию.
Вот пример воспроизводимости.
Без каких-либо значений выравнивания столбцы символов выравниваются по левому краю, а числовые столбцы выравниваются по правому краю, как показано ниже.
library(knitr)
kable(head(mtcars[1:5]))
который возвращает
| | mpg| cyl| disp| hp| drat|
|:-----------------|----:|---:|----:|---:|----:|
|Mazda RX4 | 21.0| 6| 160| 110| 3.90|
|Mazda RX4 Wag | 21.0| 6| 160| 110| 3.90|
|Datsun 710 | 22.8| 4| 108| 93| 3.85|
|Hornet 4 Drive | 21.4| 6| 258| 110| 3.08|
|Hornet Sportabout | 18.7| 8| 360| 175| 3.15|
|Valiant | 18.1| 6| 225| 105| 2.76|
Чтобы выравнивать числовые столбцы по центру, сохраняя выравнивание столбца символа, я использовал следующее.
kable(head(mtcars[1:5]), align=rep('c', 5))
| | mpg | cyl | disp | hp | drat |
|:-----------------|:----:|:---:|:----:|:---:|:----:|
|Mazda RX4 | 21.0 | 6 | 160 | 110 | 3.90 |
|Mazda RX4 Wag | 21.0 | 6 | 160 | 110 | 3.90 |
|Datsun 710 | 22.8 | 4 | 108 | 93 | 3.85 |
|Hornet 4 Drive | 21.4 | 6 | 258 | 110 | 3.08 |
|Hornet Sportabout | 18.7 | 8 | 360 | 175 | 3.15 |
|Valiant | 18.1 | 6 | 225 | 105 | 2.76 |
Следующий текст, скопированный в файл .Rmd, вернет таблицу, отформатированную по желанию в виде файла pdf.
---
title: "Untitled"
output: pdf_document
---
this thing
```{r table1, as.is=TRUE}
library(knitr)
kable(head(mtcars[1:5]))
```
is not a centered table, while this thing
```{r table2, as.is=TRUE}
kable(head(mtcars[1:5]), align=rep('c', 5))
```
is a centered table.