gpt4 book ai didi

r - knitr 在渲染 html 时将 (1) 更改为

转载 作者:行者123 更新时间:2023-12-04 14:38:12 25 4
gpt4 key购买 nike

.Rmd 文件的以下内容:

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

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

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

这是故意的吗?我该如何解决这个问题,并让括号中的数字显示为 html 输出中的数字?
knitr::kable的输出似乎没问题,显示:
<td style="text-align:left;"> (1) </td>
细节:
  • 使用 knitr 1.20
  • RStudio 服务器 1.1.453
  • 请注意,删除 format = "html"不能解决现实生活中的问题,我想使用 css 进行高级格式化,例如基于生成的表的类

  • A 快速解决方案 基于迈克尔哈珀接受的答案可能是这样的方法:
    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 <- function(x) {
    levels(x) <- replacechars(levels(x))
    x
    }
    replacechars.data.frame <- function(x) {
    dfnames <- names(x)
    x <- data.frame(lapply(x, replacechars), stringsAsFactors = FALSE)
    names(x) <- dfnames
    x
    }

    使用示例:
    mtcars <- datasets::mtcars

    # Create a character with issues
    mtcars$am <- sprintf("(%s)", as.character(mtcars$am))

    # Create a factor with issues
    mtcars$hp <- as.factor(mtcars$hp)
    levels(mtcars$hp) <- sprintf("(%s)", levels(mtcars$hp))

    replacechars(mtcars)

    最佳答案

    如果您不想删除 format="html"参数,您可以尝试在括号中使用 HTML 字符实体( &lpar&rpar ),然后添加参数 escape = FALSE :

    ```{r cars}
    mtcars$am <- sprintf("&lpar;%s&rpar;", as.character(mtcars$am))
    knitr::kable(mtcars, format = "html", escape = FALSE)
    ```

    enter image description here

    仍然不完全确定是什么导致了错误。看来括号的具体组合被 处理的很奇怪针织 .

    关于r - knitr 在渲染 html 时将 (1) 更改为 <ol>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53616667/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com