首页 > 解决方案 > Knitr 上的自定义语言引擎

问题描述

根据文档,我在 Knitr 上添加了一个自定义语言引擎。

require(knitr)
knit_engines$set(upper = function(options) {
  code <- paste(options$code, collapse = "\n")
  if (options$eval) 
    toupper(code) else code
})

当我将以下命令添加到 Rmd 文件中时,我可以在 RStudio 中运行当前块。

```{upper}
Hello, **knitr** engines!
```.

你好,针织引擎!

但是,如果我尝试将整个文件编织到 html 页面,我将看不到分块代码的结果。我将在 R Markdown 选项卡上收到以下警告消息。

Warning message:
In get_engine(options$engine) :
  Unknown language engine 'upper' (must be registered via knit_engines$set()).

那么如何注册引擎以便程序稍后看到呢?

标签: rr-markdownknitr

解决方案


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

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)

knitr::knit_engines$set(upper = function(options) {
  code <- paste(options$code, collapse = "\n")
  if (options$eval) 
    toupper(code) else code
})
```

```{upper}
Hello, **knitr** engines!
```

推荐阅读