在 R 中注释掉多行
当你想注释多行 R 代码时,传统的方法是在你需要注释的每一行的开头放置一个 #
字符,因为 R 不支持多行注释。
如果需要注释的代码行数不多,执行这个任务是可以的。但是,如果你需要注释一个很长的代码块,一个能够在所选代码块中的每一行添加 #
字符的专门代码编辑器可能会很有用。在 RStudio 中,你可以通过在 Windows 中使用Ctrl+Shift+C组合键,或者在 OSX 中使用Command+Shift+C来实现。RStudio 文档提供了更多关于键盘快捷键的信息。
Notepad++ 可以识别 R 代码,还允许你使用Ctrl+Q或Command+Q快捷键来注释代码。如果你使用 Emacs,也可以使用 M-x comment-region
。要恢复操作,使用 M-x 取消注释区域
。
使用 scan()
插入任意文本
你也可以使用 scan()
函数在你的代码中插入任何任意文本,之后你需要使用 rm()
从内存中删除文本。但是要确保 rm()
之前的注释代码的最后一行必须是空白。由于 scan()
将文本加载到一个变量中,所以必须将注释的代码或文本保持在合理的大小范围内。
下面是如何使用这个方法。
comments <- scan(what="character")
Place your comments here
You can place code also:
some_data <- 1:1000
Just leave the last line blank.
rm(comments)
在 R 中使用函数来注释多行
下面的 FormatComment
函数从剪贴板中提取文本,并在每行开头用 #
符号进行格式化。因此,如果你使用的文本编辑器不能自动注释代码块,你可以通过将代码复制到剪贴板,并从控制台调用 FormatComment
函数来获得同样的结果,以获得一个注释的版本。然后,你可以用注释的代码块替换原来的代码块。
FormatComment<-function() {
y <- as.list(readClipboard())
spacer <- function(x) paste("#", paste(" ", collapse=""), x, sep="")
z <- sapply(y, spacer)
zz <- as.matrix(as.data.frame(z))
dimnames(zz) <- list(c(rep("", nrow(zz))), c(""))
writeClipboard(noquote(zz), format = 1)
return(noquote(zz))
}
要尝试使用它,只需复制任何你想包含的文本作为注释,然后调用 FormatComment
函数。例如,如果你要把这段文字转换成注释。
This is some text
I want to insert
as a comment
in the middle of
my R script.
只需选择整个块并复制到剪贴板。然后像这样调用 FormatComment
函数。
FormatComment()
然后你会得到以下输出。
# This is some text
# I want to insert
# as a comment
# in the middle of
# my R script.