减少使用 kable(, format = 'markdown') 创建的 table 中的列间距

Reduce spacing between columns in table created with kable(, format = 'markdown')

我尝试使用函数 kable() 的格式 "markdown" 创建一个 table,但是列之间的空间太宽了table 延伸到整个页面。无论如何调整单元格大小,以便降价格式的 table 不会延伸到页面上?在 latex 格式中,它保留在页面内,但我不想要这种格式,也不想要 html。我希望输出文件为 .pdf。 我知道有人问过类似的问题 here,但我的问题是针对 markdown 格式的。如果您觉得这是重复的,请合并问题。

可重现的例子:

---
title: "Example"
author: "JAQuent"
date: "7 Juni 2017"
output: pdf_document
---

\tiny

```{r results='asis', echo = FALSE, warning = FALSE}
library(knitr)

table1 <- data.frame(Factor1 = c('level 1', 'level 1', 'level 2', 'level 2'),
                     Factor2 = c('level 1', 'level 2', 'level 1', 'level 2'),
                     Parameter1 = sample(1000000:9999999, 2),
                     Parameter2 = sample(1000000:9999999, 2),
                     Parameter3 = sample(1000000:9999999, 2),
                     Parameter4 = sample(1000000:9999999, 2),
                     Parameter5 = sample(1000000:9999999, 2),
                     Parameter6 = sample(1000000:9999999, 2),
                     Parameter7 = sample(1000000:9999999, 2))

names(table1) <- c('Factor1', 'Factor2', 'Parameter1', 'Parameter2', 'Parameter3', 'Parameter4', 'Parameter5', 'Parameter6', 'Parameter7')


kable(table1, format = 'markdown')
kable(table1, format = 'latex')
```

?kable 中的几个示例包含填充参数。喂它 0L 让你更接近,但事实证明这个参数将采用负整数,所以

kable(table1, format = 'markdown', padding=-1L)

将产生更接近您正在寻找的东西。

我想你要找的其实是kable(table, "latex", booktabs = T)。此外,您可以查看 kableExtra 包,它可以轻松修改 kable 输出。