2012-02-02 85 views
45

Possible Duplicate:
R: Multiline Comment Workarounds?R:注释掉的代码块

我想注释掉的R.几行代码有没有这样做,而不必把#每行之前的任何方式 - 有点像/* blocked out code */在SAS ?

+0

R不做多行注释。看到类似的线程:http://stackoverflow.com/questions/4131338/is-it-possible-to-have-a-multi-line-comments-in-r – Maiasaura 2012-02-02 05:56:25

+0

我最好的建议是编写一个宏(或插件以防你使用类似Sublime Text 2的东西),并指定一个键盘绑定,以便在你敲击适当的键绑定后,选定的文本(即注释)在前面得到一个#。 – Maiasaura 2012-02-02 05:58:06

+0

这是一个想法。太糟糕R本身并没有这样做。谢谢,Maiasaura。 – user702432 2012-02-02 06:15:55

回答

26

大多数编辑采取某种快捷方式来注释掉代码块。默认编辑器使用类似命令或控制和单引号的方式来注释选定的代码行。在RStudio中,它是命令或控制'/'。检查你的编辑器。

它仍然逐行评论,但他们也取消了选定的行的注释。对于Mac的RGUI它的命令选项'(我想象的Windows是控制选项)。对于Rstudio,它只是命令或控制+ shift + C。

+3

是的,这是一个超级方便的功能。在Emacs中,只需突出显示要注释的区域,然后输入“C-x r t”,然后键入要添加的字符(如'“##”')。要为SO缩进代码块,请执行相同操作,但用四个空格替换最后三个字符! – 2012-02-02 08:03:54

+2

在Emacs中,您还可以使用'M-x注释区域'。不知道'C-x r',谢谢! – 2012-02-02 08:11:31

+16

CTRL + SHIFT + C切换eclipse/StatET下的选择评论。 – 2012-02-02 08:40:57

35

一个代码块注释使用if语句:

if(FALSE) { 
    all your code 
} 

它的工作原理,但我几乎总是使用我的编辑器(RStudio,凯特,KWrite这样)的块注释选项。

19

把它包在一个未使用的功能:

.f = function() { 

## unwanted code here: 

} 
1

我用RStudio或Emacs,并始终使用可用的编辑器的快捷方式发表意见的区域。如果这不可能,那么你可以使用保罗的答案,但这只适用于你的代码在语法上是正确的。

这是我想出来的另一种肮脏的方式,将它包装在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) 
+2

更脏的变化。定义'“#”< - function()不可见(scan(what = character()))'然后用'“#”()'开始注释块。 – 2012-02-02 08:53:49

+0

以前的答案应该是反引号而不是引号(尽管它适用于任何一种情况),但如果我能弄清楚如何在注释内部引用代码块,我会感到厌烦。 – 2012-02-02 08:58:06

+0

里奇,不错的建议,但斜线将产生错误信息:错误:意外 '/' 在: “''#(#评论 HTTP的开始:/” – PatrickT 2013-03-11 14:32:34

0

我在支柱94处理了这个在talkstats.com,101 & 103在线程发现:Share Your Code。正如其他人所说,Rstudio可能是更好的选择。我将这些函数存储在我的.Rprofile中,并且实际上使用它们来快速自动阻止代码行。

不像你期待的那么好,但可能是一种方法。