是否有可以自动重新格式化R代码的工具(编辑器,脚本,等等......)?它不需要是可自定义的,但它必须能够识别由分号或换行符分隔的语句,因为此代码具有两者。如果它可以将所有语句放在一个单独的行上,一致地缩进代码块并始终如一地放置括号,我将非常高兴。
编辑:总结调查结果
感谢您的回答。这是我发现的。
这是我编写的一个小函数,以便我可以转换整个源目录(使用与formatR相同的底层函数,这在动画包中很奇怪)。
library("animation")
tidy.all <- function(inDir = NULL, outDir = NULL, ...) {
if (is.null(inDir) || is.na(outDir))
stop("inDir can't be null or NA")
if (!file.info(inDir)$isdir)
stop("inDir must be a directory")
if (is.null(outDir) || is.na(outDir))
stop("outDir can't be null or NA")
if (!file.exists(outDir))
dir.create(outDir)
if (!file.info(outDir)$isdir)
stop("outDir must be a directory")
for (f in dir(inDir)) {
currFile <- file.path(inDir, f)
if (length(grep(".*\\.R$", currFile, perl = T))) {
outFile <- file.path(outDir, f)
if (file.exists(outFile))
stop(paste("refusing to overwrite", outFile))
tidy.source(currFile, file = outFile, ...)
}
}
}
答案 0 :(得分:9)
虽然ESS是一个更好的长期解决方案,但如果您只是快速格式化工作,也许这个包装会有所帮助:http://yihui.name/en/?s=formatr。
答案 1 :(得分:7)
使用ESS的Emacs 非常好 - 并且R Core推荐的默认设置位于Section 7 R coding standards手册的R Internals。
答案 2 :(得分:6)
我使用StatET,它的效果非常好。
您还可以在CRAN上尝试the formatR package。
答案 3 :(得分:2)
虽然我从未使用它,但也许以下的eclipse插件http://www.walware.de/it/statet/可能会有所帮助。
答案 4 :(得分:0)
您可以在statET中使用ctrl + I来修复代码的缩进。 但是,可以将formatR包与代码片段一起使用,从而产生更好的结果,特别是通过为其分配热键。
答案 5 :(得分:-1)
我有同样的问题。
在R Studio中,有一种非常简便的重新格式化格式:
只需复制所有代码并粘贴到新的R script