Ответ 1
Хотя ESS является гораздо лучшим долгосрочным решением, если у вас есть простое задание форматирования, возможно, этот пакет поможет: http://yihui.name/en/?s=formatr.
Есть ли какой-нибудь инструмент (редактор, script, любой...), который может автоматически переформатировать R-код? Его не нужно настраивать, но он должен иметь возможность распознавать утверждения, разделенные точкой с запятой или символами новой строки, поскольку этот код имеет оба. Если он может поместить все утверждения в отдельную строку, последовательно отступать кодовые блоки и последовательно размещать фигурные скобки, я буду очень рад.
Изменить: обобщение результатов
Спасибо за отличные ответы. Вот что я нашел.
Вот небольшая функция, которую я написал, чтобы я мог конвертировать весь исходный каталог (используя ту же базовую функцию, что и форматR, которая странно в пакете анимации).
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/.
Вы можете использовать ctrl + я в statET, чтобы исправить отступ вашего кода. Однако можно использовать пакет formatR с фрагментами кода, которые генерируют лучший результат, в частности, назначая ему горячую клавишу.
У меня такая же проблема. Существует действительно ЛЕГКИЙ способ переформатирования в R Studio: просто скопируйте весь код и вставьте новый R script