小编Joz*_*zef的帖子

knitr在渲染html时将(1)更改为<ol>?

.Rmd文件的以下内容:

---
title: "Untitled"
output:
  html_document: default
---

```{r cars}
mtcars$am <- sprintf("(%s)", as.character(mtcars$am))
knitr::kable(mtcars, format = "html")
```
Run Code Online (Sandbox Code Playgroud)

在渲染到html之后,将显示列<ol><li></li></ol>中的有序列表am,而不是括号中的数字(由生成的数字sprintf).

这是有意的吗?我如何解决这个问题并在括号中显示数字,因为它们在html输出中?

输出knitr::kable似乎很好,显示:

<td style="text-align:left;"> (1) </td>

细节:

  • 使用knitr 1.20
  • RStudio Server 1.1.453
  • 请注意删除format = "html"不能解决问题,因为在现实生活中,我想用css进行高级格式化,例如基于生成的表的类

基于Michael Harper接受的答案的快速解决方案可能是这样的方法:

replacechars <- function(x) UseMethod("replacechars")
replacechars.default <- function(x) x
replacechars.character <- function(x) {
  x <- gsub("(", "&lpar;", x, fixed = TRUE)
  x <- gsub(")", "&rpar;", x, fixed = TRUE)
  x
}
replacechars.factor …
Run Code Online (Sandbox Code Playgroud)

r knitr r-markdown kable

6
推荐指数
1
解决办法
92
查看次数

标签 统计

kable ×1

knitr ×1

r ×1

r-markdown ×1