R: 注释掉代码块

Possible Duplicate:
R: Multiline Comment Workarounds?

I want to comment out several lines of code in R. Is there any way of doing it without having to put a # before each line - sort of like /* blocked out code */ in SAS?

452044 次浏览

大多数编辑器采用某种快捷方式来注释掉代码块。默认的编辑器使用命令或控件和单引号来注释选定的代码行。在 RStudio 是 Command或者 Control + /。检查你的编辑器。

It's still commenting line by line, but they also uncomment selected lines as well. For the Mac RGUI it's command-option ' (I'm imagining windows is control option). For Rstudio it's just Command or Control + Shift + C again.

随着编辑器的更新和不同软件成为最流行的 R 编辑器,这些快捷方式可能会随着时间的推移而改变。你得查查你有什么软件。

A sort of block comment uses an if statement:

if(FALSE) {
all your code
}

它可以工作,但是我几乎总是使用我的编辑器(RStudio,Kate,Kwrite)的块注释选项。

将它包装在一个未使用的函数中:

.f = function() {


## unwanted code here:


}

我使用 RStudio 或 Emacs,并且总是使用可用于注释区域的编辑器快捷方式。如果这不是一种可能性,那么您可以使用 Paul 的答案,但这只有在您的代码语法正确的情况下才有效。

这里是另一个肮脏的方法,我想出了,包装在 scan()和删除的结果。它确实将注释存储在内存中一段时间,所以它可能无法处理非常大的注释。最好还是把 #标志放在每一行的前面(可能还有编辑器快捷键)。

foo <- scan(what="character")
These are comments
These are still comments
Can also be code:
x <- 1:10
One line must be blank


rm(foo)

我已经在 talkstats.com 的94,101和103帖子中讨论过这个问题,这些帖子可以在 共享您的代码的帖子中找到。正如其他人所说,RStudio 可能是一个更好的选择。我将这些函数存储在。并且实际上使用它们来自动地快速地阻止代码行。

Not quite as nice as you were hoping for but may be an approach.