在HTML表格表格中打印换行符

时间:2018-07-12 19:15:00

标签: r r-markdown knitr

使用kable创建表时,是否有一种方法可以在data.frame'< br >中的字符串具有dt'时生成换行符(即\n)?

例如,在这里:

library(data.table); 
dt <- fread("https://s3.amazonaws.com/assets.datacamp.com/blog_assets/prince_raw_data.csv")
dt <- dt[301:303,2:6] #take three songs only

library(knitr); library(kableExtra)
kable(dt);
# use this line to view it:   dt %>% kable %>% kable_styling()

enter image description here

这与Automated nicely formated book of lyrics from data.frame using markdown, knitr and glue

1 个答案:

答案 0 :(得分:2)

由于文本字符串包含格式为\n的换行符,您可以将所有这些换行符替换为等效的HTML标签<br>。我更喜欢使用str_replace_all包中的stringr,但您也可以考虑使用基于R的gsub

以下是可重现的示例:

---
output: html_document
---

```{r}
library(stringr)


dt <- data.frame(text = c("Here is some sample text \nHere is some sample text\n", 
                          "Here is more sample text \nAgain with a linebreak"),
                 name = c("Name 1", "Name 2"))
dt$text <- stringr::str_replace_all(dt$text, "\\n", "<br>")

knitr::kable(dt)
```

enter image description here

如果您不将文件编译为HTML R Markdown输出,也可以使用dt %>% kable(format = "html",escape = FALSE) %>% kable_styling()来显示它。请注意,escape=FALSE可以防止换行符混乱。