使用 Rstudio“运行”按钮对 knitr 块进行条件评估

Gil*_*ung 5 rstudio knitr r-markdown

我正在使用eval块头中的选项进行条件评估。如果我eval=FALSE在标题中写入,则在我编织文档时不会评估该块,并且在我使用Rstudio 菜单中的全部运行 (Ctrl+Alt+R)时也不会评估该块。

当我尝试提供eval变量时出现问题,例如下面的示例:

```{r setup}
ev_cars = TRUE
ev_pressure = FALSE
```

## First chunk

```{r cars, eval=ev_cars}
summary(cars)
```

## Second chunk

```{r pressure, echo=FALSE, eval = ev_pressure}
plot(pressure)
```
Run Code Online (Sandbox Code Playgroud)

在此示例中,当我运行 knitr 时,会评估第一个块,而不会评估第二个块(因为ev_pressure=FALSE)。但是,当我尝试使用Rstudio 菜单中的Run All (Ctrl+Alt+R) 运行时,会评估两个块。

有没有办法克服这个问题?

我正在使用 Rstudio v 1.1

祝一切顺利,

吉尔

Séb*_*tte 2

编辑:{块选项仅在您使用时使用knit。该Run All命令不会编织文档,而是执行块内的内容,而不读取块参数。这并不完全正确,事实上,如果eval设置为 FALSE 或 TRUE,则会将其考虑在内。{因此,添加选项(例如在运行时不执行块内代码)的
一种Run All方法是使用if块内的旧方法来执行此操作。

```{r setup}
ev_cars = TRUE
ev_pressure = FALSE
```

## First chunk

```{r cars}
if (ev_cars) {
  summary(cars)
}
```

## Second chunk

```{r pressure, echo=FALSE}
if (ev_pressure) {
  plot(pressure)
}
```
Run Code Online (Sandbox Code Playgroud)

这样的话代码就比较重了。但如果要用的话Run All,为什么不直接编织呢?