如何有条件地为R markdown(HTML)中的文本着色

brjng4g3  于 2023-03-27  发布在  其他
关注(0)|答案(1)|浏览(114)

我有一些代码正在对数据集进行检查。我所有的检查都会给予1或0 -分别通过或失败。我正在用HTML R Markdown制作数据质量报告。
在R Markdown中....
我写了一个简单的函数,把1或0变成通过或失败。
我把x定义为1,使这个例子具有可重复性。
为了这个问题的目的,我不得不把三个破折号“”放在Markdown块的开始和结束的两个斜杠之间,否则它们不会出现在问题上。

/```/ <-- omit slashes when putting into R
{r setup, include=FALSE, echo=FALSE}

check_status <- function (fig1){
      if(is.na(fig1)){" not run"}
      else if(fig1 == 1){" passed "}
      else if(fig1 == 0 ){" failed "}
    }                           

x <- 1

/```/ <-- omit slashes when putting into R
This check has `r check_status(x)`

^^^这将呈现为“通过”编织时,因为x = 1
我想“通过”变成绿色,“失败”变成红色(然后“不运行”可以说,黑色)。这可能吗?

aurhwmvo

aurhwmvo1#

您可以使用带有sprintf的HTML标记,基于如下条件以特定颜色打印单词:

---
output: html_document
---

``` {r}

check_status <- function (fig1){
      if(is.na(fig1)){" not run"}
      else if(fig1 == 1){sprintf("<span style='color:green'>%s</span>", "passed")}
      else if(fig1 == 0 ){sprintf("<span style='color:red'>%s</span>", "failed")}
    }                           

x1 <- 1
x2 <- 0

This check has r check_status(x1)

This check has r check_status(x2)


输出:

![](https://i.stack.imgur.com/Nld8b.png)

相关问题