R knitr::kable: 避免一栏文字换行

R knitr::kable: avoid text wrap of one column

我正在 rmarkdown/html 文档中创建一个 table,其中的列由 knitr 参数动态选择。

---
output: html_document
---

```{r echo=FALSE}
library(knitr)
header <- c("Col1", "Col2", "Col3", "Col4", "Col6") # actually comes from knitr parameter
testdata <- data.frame(Col1 = c("text", "very long long long long long    long long long long long text", "texttext"),
             Col2 = c("looooooooooooooooooooooooooooooooooooooooooong long long long long long text", "textxyz", "abc"),
             Col3 =  1:3,
             Col4 = c("2018-11-01", "2018-11-02", "2018-11-03"),
             Col5 = c(100000, 200000, 300000),
             Col6 = c(123, 456, 789))
testdata <- testdata[,colnames(testdata) %in% header]
kable(testdata)
```

如果我编织那个,Col4 中的日期会被换行。如何在不更改列名和 table?

的总宽度的情况下避免仅针对列 Col4 进行文本换行
Col4                Col4
------              ------
2018                2018-11-01
-11-01      ===>    2018-11-02
2018                2018-11-03
-11-02
2018
-11-03

你可以使用 kableExtra::column_spec:

library(kableExtra)
kable(testdata) %>% column_spec(column = 4, width = "100px")