是否可以在 R 中进行多行注释? [复制]
Posted
技术标签:
【中文标题】是否可以在 R 中进行多行注释? [复制]【英文标题】:Is it possible to have a multi-line comments in R? [duplicate] 【发布时间】:2011-05-07 02:10:32 【问题描述】:我发现了这个old thread(一年多以前),它解释了为什么 R 不支持多行 cmets(例如 php 的 /* 注释 */)。
我想知道这个问题在过去一年中是否已经解决,或者是否有其他替代方案? (比如notepad++和npptor,你可以标记一堆行,然后按ctrl+q将它们全部标记为cmets,其他IDE有没有类似的解决方案?)
【问题讨论】:
在 RStudio 中,您可以使用#'
开始您的评论,以下行将被自动评论。
" bla comment bla works!" 放在""之间
【参考方案1】:
从 2.12 版开始,R 中没有多行 cmets,并且不太可能更改。在大多数环境中,您可以通过突出显示和切换评论来评论块。在 emacs 中,这是 'M-x ;'。
【讨论】:
【参考方案2】:CTRL+SHIFT+C 在 Eclipse + StatET 和 Rstudio 中。
【讨论】:
是的!多行注释语言级别约束的最简单解决方案是捷径!【参考方案3】:if(FALSE)
...
阻止执行多行。但是,这些行仍然必须在语法上正确,即不能是正确意义上的 cmets。但在某些情况下仍然有帮助。
【讨论】:
感谢@caracal,如果您想跳过整个代码块,而如果您想再次处理同一块,则非常简单地注释掉它非常有用` # if(FALSE) ` 和` # ` 有什么方法可以修改这个,如果 FALSE 被更改为 TRUE,它会在大括号内运行多行代码而不是最后一行?【参考方案4】:如果需要,您可以为多行 cmets 使用独立字符串 — 我一直认为这比 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-# 来注释当前行.如果您正在处理单线然后意识到您需要先做一个准备步骤,那么将一条线“搁置”非常好。
【讨论】:
Hello Esteis - 关于 alt-shift-#,它在 Windows 上不起作用。我使用“Esc”,我认为它的工作方式与您描述的类似。感谢所有建议。 在 Linux 上,插入这样的 cmets 的功能可能是由于 GNUreadline
库。如果它在 R 中适用于您,那么它可能适用于许多其他应用程序,例如 bash
本身。
非常好的处理 if false 块,谢谢!【参考方案5】:
很遗憾,R 中仍然没有多行注释。
如果您的文本编辑器支持列模式,则使用它一次添加一堆#s。如果您使用 UltraEdit,Alt+c 会将您置于列模式。
【讨论】:
UltraEdit 在编辑菜单上也有一个注释添加命令:Alt+e, n 把所有东西都放在“”之间【参考方案6】:将以下内容放入您的 ~/.Rprofile
文件中:
exclude <- function(blah)
"excluded block"
现在,您可以排除如下块:
stuffiwant
exclude(
stuffidontwant
morestuffidontwant
)
【讨论】:
【参考方案7】:R Studio(和 Eclipse + StatET):突出显示文本并使用 CTRL+SHIFT+C 在 Windows 中注释多行。 对于 macOS,请使用 command+SHIFT+C。
【讨论】:
删除多行的 cmets 也是同样的方法。 这个解决方案没有解决 OP 的问题。这只是在每行前面放置多个单行 cmets (#)。我相信 OP 正在寻找一些东西来指定评论的开头和评论的结尾——相当于 SAS 中的以下内容:/*this can be multiple lines of comments and only 4 characters are needed to comment the entire code block*/
它确实回答了这个问题。 OP 问道:“我想知道这是否在过去一年中得到了解决,或者是否有其他替代方案?”。这是另一种选择。以上是关于是否可以在 R 中进行多行注释? [复制]的主要内容,如果未能解决你的问题,请参考以下文章