我正在编辑一个包含大量R代码块的R markdown文件(.Rmd),将这些代码块的组移动到“子”文档中,以简化重新排列部分(如果没有别的话)。当我将节转换为子文档时,我想测试新的子文档而不运行其余的块和其他子节点。但是,当我用它来注释掉那些部分时,R块仍然会运行(但是RStudio使这些部分“看起来”就好像它们被注释掉了一样)。
如果我消除前面和后面的“```(即代码块表示符),则注释工作正常。但是,正如我所说,我有很多代码块,而且更方便。
那么,我如何注释掉R代码块以便它们不会运行?
答案 0 :(得分:10)
在RStudio中,如果从(至少)R代码块上方的一行(至少)突出显示(至少)R代码块的最后一行, 1 然后键入ctrl-shift-C(在OSX或Windows中)或命令shift-C(仅限OSX),RStudio将在块上放置html注释标记。
例如:
```{r cars}
summary(cars)
plot(pressure)
```
突出显示并输入ctrl-shift-C后,变为:
<!-- ```{r cars} -->
<!-- summary(cars) -->
<!-- plot(pressure) -->
<!-- ``` -->
要有选择地注释掉多个块,您可以使用RStudio查找/替换工具并选中正则表达式选项。它需要两个替换步骤(它可能只需一步完成,但我不知道如何在RStudio中跨多行捕获正则表达式。)
步骤1:注释掉一个或多个块的第一行:
查找:
(```{r.*)
替换:<!--\1
步骤2:注释掉一个或多个块的最后一行:
查找:
(```)$
替换:\1-->
1您必须在突出显示中包含块上方的行。否则,RStudio会将R注释标记(#
)放在块的每一行的开头,注释行将在输出文档中显示为纯文本。
答案 1 :(得分:4)
在Rmarkdown文档中,我们可以将某些选项应用于每个R代码块,以确定内部代码是否会运行,打印,显示错误消息等。
要运行特定的代码块,请使用:
```{r cars, eval=FALSE}
summary(cars)
```
要使特定代码块无法运行或打印到创建的文档中,请使用:
```{r cars, eval=FALSE, echo=FALSE}
summary(cars)
```
&#34; TRUE&#34;用于相反的效果,是默认值。
如果您需要注释掉许多代码块,可以从@ eipi10(谢谢)中获取建议,并使用所选的正则表达式选项查找/替换。因此,查找将是&#34;(```{r。*)&#34;,并且替换将是&#34; \ 1,eval = FALSE,echo = FALSE}&#34; (没有双引号)。