Подтвердить что ты не робот

Вставить Rmarkdown с Rmarkdown, без оценки knitr

Я хочу продемонстрировать, как писать RMarkdown, где демонстрация RMarkdown встроена в документ RMarkdown, используемый для создания материала курса. Внутри этого огороженного кодового блока я не хочу, чтобы knitr выполнял кусок.

Я хочу помещать что-то подобное в свой документ Rmarkdown на верхнем уровне и иметь все, что между внешними ограждениями печатается дословно в фиксированной ширине в выходном HTML-документе, вместо того, чтобы оценивать внутреннюю часть встроенного R-кода и встроенный код.

```
---
title: "RMarkdown teaching demo"
author: "whoever"
---

# Major heading

Here some text in your RMarkdown document. Here a code chunk:

```{r, eval=FALSE}
head(mtcars)
```

Now we're back into regular markdown in our embedded document.

Here inline code that I don't want executed either; 
e.g. mean of mpg is `r mean(mtcars$mpg)`.

```

Я попробовал трюк с нулевой шириной в примере 65 для скрипа, но это не удается при компиляции в PDF (мне нужны как HTML, так и PDF).

4b9b3361

Ответ 1

Вот один из способов его достижения. Вы можете добавить `r ''` перед заголовком блока, чтобы фрагмент кода не был распознан, и используйте knitr::inline_expr() для генерации `r `.

````
---
title: "RMarkdown teaching demo"
author: "whoever"
---

# Major heading

Here some text in your RMarkdown document. Here a code chunk:

`r ''````{r, eval=FALSE}
head(mtcars)
```

Now we're back into regular markdown in our embedded document.

Here inline code that I don't want executed either; 
e.g. mean of mpg is `r knitr::inline_expr('mean(mtcars$mpg)')`.

````

Это будет проще, если вы просто сохраните документ примера R Markdown в отдельном файле и включите его в документ верхнего уровня через readLines(), например.

````
`r paste(readLines('example.Rmd'), collapse = '\n')`
````

Чтобы включить три backticks в защищенном блоке кода, вам нужно больше трех обратных циклов. Вот почему я использую здесь четыре.

Ответ 2

Я делаю это с помощью функции cat, которая работает как для вывода HTML, так и для PDF.

---
title: "RMarkdown teaching demo"
author: "whoever"
---

# Major heading

Here some text in your R Markdown document. Here a code chunk:

```{r, echo=FALSE, comment=""}
cat(c("```{r, eval=FALSE}",
      "head(mtcars)",
      "```"), 
    sep='\n')
```

Now we're back into regular Markdown in our embedded document.

Here inline code that I don't want executed either: 

```{r, echo=FALSE, comment=""}
cat("The mean of mpg is `r mean(mtcars$mpg)`.")
```

Ответ 3

Не уверен относительно вывода в формате pdf, но окружающий ваш demo rmarkdown:

<pre>
...
</pre>

похоже, работает для html.