用Rstudio" Run"条件评估knitr块。按键

时间:2017-12-13 08:16:38

标签: 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)
```

在这个例子中,当我运行knitr时,第一个块被评估而第二个块没有(因为ev_pressure=FALSE)。但是,当我尝试使用Rstudio菜单中的全部运行(Ctrl + Alt + R)运行时,将对这两个块进行评估。

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

我正在使用Rstudio v 1.1

一切顺利,

吉尔

1 个答案:

答案 0 :(得分:1)

编辑:{块选项仅在knit时使用。 Run All命令不编织文档,而是执行块内部的内容,而不读取块参数。}这不完全正确,实际上,如果eval设置为FALSE或TRUE,它被考虑在内。
{因此,a} 添加选项(如在运行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 All,为什么不直接编织呢?