kableextra colnames 在 R 中的特定字符后换行

kableextra colnames lineabreak after a specific character in R

我下面有 table:

mydf <- data.frame(col0 =c(rep("z",5)),col1= c(rep(0,5)), col2= c(rep(1,5)))
colnames(mydf) <- c("name","aaaa, bbbb", "ccccccc, ddddd-dd")

mynames <- sapply(c(colnames(mydf)), FUN = function(x) gsub("," , ",\\", x))
kbl(mydf,
    escape=F,
    col.names = linebreak(mynames))

我希望我的列名称在“,”(逗号)之后换行到下一行。我尝试了 ",\\"",\"",\n"。 none 正在工作。我正在制作一个 r markdown pdf 输出。
有什么建议或提示吗?

我们可以使用 HTML 标签 ("<br>") 为 HTML 文件创建换行符 - gsub/sub 是矢量化的,因此不需要循环在列名称的每个元素上

library(kableExtra)
mynames <- gsub(",", "<br>", names(mydf))
kbl(mydf,
    escape=FALSE,
    col.names = linebreak(mynames))

如果是pdf文件,下面的方法可行

mynames <- gsub("[,-]", "\n", names(mydf))

-完整代码-rmarkdown

---
title: "."
output: bookdown::pdf_document2
---



```{r chunk1, echo = FALSE}
library(kableExtra)
mydf <- data.frame(col0 =c(rep("z",5)),col1= c(rep(0,5)), col2= c(rep(1,5)))
colnames(mydf) <- c("name","aaaa, bbbb", "ccccccc, ddddd-dd")
mynames <- gsub(",", "\n", names(mydf))

kbl(mydf,
   escape=FALSE,
   col.names = linebreak(mynames))

```

-输出