如何在Rmarkdown中省略部分块?
例如:
```{r echo T, eval = T}
df <- readRDS("yourfile.RDS")
df <- readRDS("secretfile.RDS") ### NEED TO OMIT THIS PART ONLY
df
```
我知道include = F
或echo = F
选项,但会省略df
的输出或完全省略代码。
或者,我可以这样做:
```{r echo T, eval = F}
df <- readRDS("yourfile.RDS")
```
```{r echo = F, eval = T}
df <- readRDS("secretfile.RDS") ### NEED TO OMIT THIS PART ONLY
```
```{r eval = T, echo = T}
df
```
但这是一种笨重的方式来实现它并且它会削减代码块。输出应如下所示:
df <- readRDS("yourfile.RDS")
df
随后输出df
。
谢谢!
编辑:"yourfile.RDS"
是我的文档中用于演示目的的占位符。因此,无法评估代码行df <- readRDS("yourfile.RDS")
。
答案 0 :(得分:6)
echo
参数可以包含数字,而不只是TRUE
或FALSE
。它们被视为块中表达式向量的索引。
为了隐藏第二行代码,请使用echo = -2
。
eval
参数也接受索引,但如果您将其设置为不是eval,它会显示带注释标记的内容,因此您无法(轻松?)显示第1行但是执行第2行。您可以这样做:
```{r eval=-1, echo=-2}
a <- 1
b <- 2
c <- 3
```
并且第1行不会被执行。块将显示为
## a <- 1
c <- 3
答案 1 :(得分:1)
您可以隐藏代码,但将其置于未评估的代码块之上。然后在未评估的代码块(显示)之后,您可以创建另一个已评估但隐藏的代码块,该代码块将返回您的df。
例如:
```{r echo = F, eval = T}
df <- readRDS("secretfile.RDS") ### NEED TO OMIT THIS PART ONLY
```
```{r echo = T, eval = F}
df <- readRDS("yourfile.RDS")
df
```
```{r echo = F, eval = T}
df
```
OP在这里。谢谢@be_green!只需略微改进上面的代码:
```{r echo = T, eval = F}
df <- readRDS("yourfile.RDS")
df
```
```{r echo = F, eval = T}
df <- readRDS("secretfile.RDS") ### NEED TO OMIT THIS PART ONLY
df
```