Есть ли какой-либо инструмент (редактор, сценарий, безотносительно...) доступен, который может автоматически переформатировать код R? Это не должно быть настраиваемо, но это должно смочь распознать операторы, разделенные или точками с запятой или новыми строками, так как этот код имеет обоих. Если это может поместить все операторы на отдельную строку, последовательно блоки кода отступа и последовательно помещать фигурные скобки, я буду очень счастлив.
Править: суммирование результатов
Спасибо за большие ответы. Вот то, что я нашел.
Вот немного функции, которую я записал так, чтобы я мог преобразовать весь исходный dir (использующий ту же базовую функцию в качестве 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, ...)
}
}
}
Хотя ESS является гораздо лучшим долгосрочным решением, если вам просто нужно быстро отформатировать программу, возможно, этот пакет поможет: http://yihui.name/en/?s=formatr.
Emacs с ESS делает это исключительно хорошо - а настройки по умолчанию, рекомендованные R Core, находятся в Разделе 7 Стандарты кодирования R руководства R Internals .
Я использую StatET, и он неплохо работает для этого.
Вы также можете попробовать пакет formatR на CRAN.
Хотя я никогда не использовал его, возможно, следующий плагин eclipse http://www.walware.de/it/statet/ мог бы быть в состоянии помочь.