我想编写一个R Markdown文档,其中提供了有关如何编写R Markdown文档的代码示例。例如,我想在文档中显示如何将文本呈现为粗体。
SELECT LISTAGG(Y, ',') WITHIN GROUP (ORDER BY Y DESC) AS LIS FROM
(SELECT TO_NUMBER(EXTRACT(YEAR FROM ADD_MONTHS(SYSDATE, +3))) - LEVEL +
1 AS Y FROM DUAL CONNECT BY LEVEL <= 11);
那很好,`将文本作为代码渲染。但是,我不知道如何获取代码块以正确显示。例如
`**this is bold**` will render 'this is bold' with bold text, i.e. **this is bold**
这不起作用,因为markdown不是受支持的语言。我无法将r代码块括在`中,因为我需要该符号来标记代码块的开头,并且它只能内联。
我可以通过实际使用R来进行箍跳
```{markdown, eval=FALSE}
```{r}
x = rnorm(1)
```
```
呈现为
```{r, echo="FALSE"}
o = "```{r}\nx=sample(1)\n```\n"
cat(o)
```
但是对于我来说编写文档更复杂,并且它生成的代码不允许简单的复制/粘贴。
是否存在一种本机方式将创建R代码块所需的降价标记渲染为代码?
答案 0 :(得分:2)
我在Rmarkdown上找到了一本书,其中有通过Rmarkdown渲染R代码块的示例。该书的源代码可在GitHub上找到,相关章节位于here。
下面的块可以根据需要工作。我无法解释为什么在块的开头需要`r'`,但是确实如此。
````markdown
`r ''````{r}
x = sample(1)
```
````
答案 1 :(得分:1)
如果您没有在三个反引号后面加上{r}
,则rmarkdown会将块传递给markdown,并且几乎可以正常工作。例如,
```
```{r}
x = rnorm(1)
```
```
显示为
不太正确; r
周围的花括号已被删除。 (我认为r-markdown是这样做的,不是markdown的。)我不知道是否有强制将其放入的选项,但是如果在r
前面有一个非字母,它们会出现。您可以放一个空格,或者(如果可以弄清楚的话)放一个零宽度的空格,R将使用"\u200B"
显示。
答案 2 :(得分:1)
您可以使用实验性的 knitrhooks 软件包,该软件包添加了块选项chunk_head
,使我们能够保留标题。该软件包正在GitHub here上开发。
要安装软件包,请使用命令devtools::install_github("nathaneastwood/knitrhooks")
。安装完成后,您可以通过以下方式使用块挂钩:加载程序包,然后在标头中调用函数chunk_head()
。
这里是一个例子:
---
title: "Untitled"
output: pdf_document
---
```{r, include = FALSE}
library(knitrhooks)
chunk_head()
```
```{r, chunk_head = TRUE, echo = TRUE}
x <- sample(1)
```
不幸的是,这不会显示语法突出显示,但是正如this issue中所讨论的,这是 knitr 处理文件的方式的限制。