如何在Rmarkdown中评估所有代码块

3

如何在Rmd文档中评估所有代码块而无需在每个代码块中加上eval=TRUE?当前的方式只会评估第一个代码块。

```{r,eval=TRUE}
1+1
```

Some text

```
2+2
```

编辑:

我正在尝试将编织/编译为HTML。

```
require(knitr)
opts_chunk$set(eval = TRUE, tidy = TRUE, cache = FALSE, echo = FALSE, include = FALSE,
               fig.path = 'figures/', dev = c("pdf"),
               fig.width = 7, fig.height = 7)
```
some text

```
1+1
```
more text
```
2+2
```

eval=TRUE 是默认设置 - Ctrl+Alt+R(Windows)应该运行所有代码块。你能提供一个简短的 .Rmd 文件的例子来展示你所看到的行为吗? - jbaums
3
你的示例在开头括号后缺少 {r} - jbaums
2个回答

4

eval=TRUE 是 .Rmd 代码块的默认行为,因此您不需要在代码块选项中显式添加它。

但是,您需要在起始分隔符后面包含 {r},以便识别该代码块为 R 代码并相应地进行评估。不使用 ```{r} 打开的代码块将不会被运行,因此您看到的就是这个问题。

一个有效的示例可能是:

```{r}
1+1
```
Some text

```{r}
2+2
```

要插入一个带有适当边界和 {r} 的新空块,您可以在 Windows 上按 Ctrl + Alt+i,在 Mac 上按 + Option + i,或单击 RStudio 源代码窗格右上角的此图标(据我所记,旧版本的 RStudio 在该一般区域中有一个“插入”下拉菜单):

enter image description here


1
在你的第一个代码块中,你可以全局设置knitr选项。
opts_chunk$set(tidy = TRUE, cache = FALSE, echo = FALSE, include = FALSE,
    fig.path = 'figures/', dev = c("pdf"),
    fig.width = 7, fig.height = 7)

在任何后续的块中,您可以通过通常的方式更改它们,但它们仅适用于该块。
编辑。这里是K. Broman提供的更详细的示例。
```{r global_options, include=FALSE}
knitr::opts_chunk$set(fig.width=12, fig.height=8, fig.path='Figs/',
                      echo=FALSE, warning=FALSE, message=FALSE)
```

那对我没用——它没有评估这些块。我在Rstudio中,我的块是由三个反引号而不是<<>>=...@来分隔的。 - Hatshepsut
你能否编辑你的问题,将整个第一个代码块包含进去? - Bryan Hanson
我添加了一个额外的例子。 - Bryan Hanson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接