我正在使用块头中的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
一切顺利,
吉尔
答案 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
,为什么不直接编织呢?