在R中可以有多行注解吗?[重复]

cld4siwp  于 2023-04-27  发布在  其他
关注(0)|答案(7)|浏览(144)

此问题已在此处有答案

Multiline Comment Workarounds?(11个回答)
十年前就关门了。
我发现了这个旧线程(一年多前),它解释了为什么R不支持多行注解(例如PHP的/* comment */)。
我想知道这个问题在过去的一年里是否已经解决了,或者是否有其他的替代方案?(例如,在notepad++中使用npptor,您可以标记一堆行并按ctrl+q将它们全部标记为注解,其他IDE是否有类似的解决方案?)

cngwdvgl

cngwdvgl1#

R Studio(和Eclipse + StatET):
在Windows上,高亮显示文本并使用CTRL+SHIFT+C注解多行。
对于macOS,使用command+SHIFT+C。

sh7euo9m

sh7euo9m2#

如果你愿意的话,你可以使用独立的字符串作为多行注解--我一直认为这比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
     ))
}

主要的限制是,当你注解东西的时候,你必须注意你的引号:如果里面有一种,你就必须用另一种来做注解;如果你在那个块里有类似“字符串带'postrophes”的东西,那么这个方法就不可能是个好主意。但是还有if (FALSE)块。
另一个限制是,这两种方法都有一个限制,那就是只能在表达式语法上有效的地方使用这样的块--比如说,不能注解掉列表的一部分。
关于在哪个IDE中执行什么操作:我是一个Vim用户,我发现NERD Commenter是一个非常优秀的工具,可以快速注解或取消注解多行代码。
最后,在R提示符下(至少在Linux下),有一个可爱的Alt-Shift-#来注解当前行。如果你正在处理一行程序,然后意识到你需要先做一个准备步骤,那么将一行代码“暂停”是非常好的。

vatpfxk5

vatpfxk53#

CTRL+SHIFT+C在Eclipse + StatET和Rstudio中。

guykilcj

guykilcj4#

if(FALSE) {
...
}

排除了多行执行。但是,这些行仍然必须语法正确,即不能是正确意义上的注解。尽管在某些情况下仍然有帮助。

7xllpg7q

7xllpg7q5#

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

neekobn8

neekobn86#

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

exclude <-  function(blah) {
    "excluded block"
}

现在,您可以像下面这样排除块:

stuffiwant

exclude({
    stuffidontwant
    morestuffidontwant
})
3okqufwl

3okqufwl7#

遗憾的是,在R中仍然没有多行注解
如果你的文本编辑器支持列模式,那么用它来一次添加一堆#。如果你使用UltraEdit,Alt+c会让你进入列模式。

相关问题