【问题标题】:How to evaluate all chunks in Rmarkdown如何评估 Rmarkdown 中的所有块
【发布时间】:2023-04-05 02:52:01
【问题描述】:

如何评估 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 文档示例,该文档会产生您所看到的行为?
  • 您的示例在打开围栏后丢失了{r}

标签: r rstudio r-markdown


【解决方案1】:

eval=TRUE 是 .Rmd 块的默认行为,因此您不需要将其显式添加到块的选项中。

但是,您确实需要在打开栅栏之后包含{r},以便将块识别为 R 代码并进行相应的评估。未使用 ```{r} 打开的块将不会运行,因此您会看到问题。

一个可行的例子可能是:

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

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

要插入带有适当栅栏和{r} 的新空块,您可以在 Windows 上按 Ctrl + Alt+i , 或 + Option + i 在 Mac 上,或单击 RStudio 源窗格右上角的此图标(来自内存,旧版本的 RStudio 在该一般区域有一个“插入”下拉菜单):

【讨论】:

    【解决方案2】:

    在您的第一个块中,您可以全局设置 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 中,我的块由三个反引号而不是 >=...@. 分隔
    • 您能否编辑您的问题以包含整个第一个代码块?
    • 我添加了一个额外的例子。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-19
    • 1970-01-01
    • 2016-05-29
    • 2021-07-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多