R中是否可以有多行注释?

Tal*_*ili 89 comments r

我找到了这个旧线程(来自一年多以前),它解释了R如何不支持多行注释(例如PHP的/*comment*/).

我想知道过去一年是否已经解决了这个问题,还是有其他选择?(例如,在带有npptor的notepad ++中,你可以标记一堆行并按ctrl + q将它们全部标记为注释,是否有其他IDE的类似解决方案?)

Soi*_*Guy 114

R Studio(和Eclipse + StatET):突出显示文本并使用CTRL+ SHIFT+ C在Windows中注释多行.或者,OS-X中的command+ SHIFT+ C.

  • 也可以用同样的方法删除多行注释。 (5认同)
  • 该解决方案没有解决OP的问题。这只是在每行前面放置多个单行注释 (#)。我相信OP正在寻找一些东西来指定注释的开头和注释的结尾——相当于SAS中的以下内容:`/*这可以是多行注释,并且只需要4个字符注释整个代码块*/` (3认同)

Est*_*eis 53

如果需要,您可以使用独立字符串进行多行注释 - 我一直认为它比if (FALSE) { }块更漂亮.字符串将被评估然后被丢弃,因此只要它不是函数中的最后一行就不会发生任何事情.

"This function takes a value x, and does things and returns things that
 take several lines to explain"
doEverythingOften <- function(x) {
     # Non! Comment it out! We'll just do it once for now.
     "if (x %in% 1:9) {
          doTenEverythings()
     }"
     doEverythingOnce()
     ...
     return(list(
         everythingDone = TRUE, 
         howOftenDone = 1
     ))
}
Run Code Online (Sandbox Code Playgroud)

主要的限制是,当你评论出来时,你必须看你的引号:如果你有一种内部,你将不得不使用另一种评论; 如果你在那个区块里面有"带有'postrophes的字符串'之类的东西,那么这种方法绝对不是一个好主意.但那时仍然存在if (FALSE)障碍.

另一个限制,两个方法都有,就是你只能在表达式在语法上有效的地方使用这些块 - 比如说没有注释掉部分列表.

关于在哪个IDE中做什么:我是Vim用户,我发现 NERD Commenter是一个非常出色的工具,可以快速评论或取消注释多行.非常人性化,记录完备.

最后,在(至少在Linux下)将R提示,有可爱的Alt- Shift- #评论当前行.如果您正在使用单线工作然后意识到您需要先准备一个步骤,那么将线路"搁置"非常好.


Rom*_*rik 29

CTRLEclipse + StatET和Rstudio中的+ SHIFT+ C.


jim*_*myb 11

R版本2.12中没有多行注释,不太可能改变.在大多数环境中,您可以通过突出显示和切换注释来注释块.在emacs中,这是'Mx;'.


car*_*cal 11

if(FALSE) {
...
}
Run Code Online (Sandbox Code Playgroud)

排除多行执行.但是,这些行仍然必须在语法上正确,即,不能正确意义上的评论.但对某些情况仍然有用.


Hug*_*ins 7

将以下内容放入您的~/.Rprofile文件中:

exclude <-  function(blah) {
    "excluded block"
}
Run Code Online (Sandbox Code Playgroud)

现在,您可以排除如下块:

stuffiwant

exclude({
    stuffidontwant
    morestuffidontwant
})
Run Code Online (Sandbox Code Playgroud)


Ban*_*jer 5

遗憾的是,R中仍然没有多行评论.

如果文本编辑器支持列模式,则使用它一次添加一堆#s.如果您使用UltraEdit,Alt+ c将使您进入列模式.