tool zum auto-format-R-code
Gibt es irgendein tool (editor, script, was auch immer...) zur Verfügung, die automatisch zu formatieren-R-code? Es muss nicht anpassbar zu sein, aber es muss in der Lage sein, zu erkennen, Aussagen getrennt, entweder durch Semikola oder Zeilenumbrüche da dieser code hat beides. Wenn Sie alle Anweisungen in einer separaten Zeile, konsequent Einrücken von Codeblöcken und konsequent statt Klammern werde ich sehr glücklich sein.
Edit: zusammenfassende Ergebnisse
Danke für die tollen Antworten. Hier ist was ich gefunden habe.
- Beide ESS-und StatET sind große R Redakteure und tun einen netten job der automatische Einrücken von code-Blöcke. StatET können Sie alles auswählen und neu-Einzug alles in eine Datei auf einmal. Was ich sagen könnte ESS ermöglicht Ihnen der Einzug einer ganzen Funktion def auf einmal doch nicht die gesamte Datei (bitte korrigieren Sie mich, wenn ich es verpasst). Beide sind weder fix Klammer Platzierung oder brechen multi-statement-Zeilen. (ZB: i = n*b;a=i+1)
- formatR ist genial. Neben der Befestigung der Einzug wird es auch Klammern konsequent und split bis zu multi-statement-Zeilen.
Hier ist eine kleine Funktion, die ich schrieb, so dass ich die konvertieren kann eine ganze Quelle von dir (mit der gleichen zugrunde liegenden Funktion als formatR, das seltsam in der animation package).
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, ...)
}
}
}
- Ich Schreibe "ziemlich-code" aus dem start-da finde ich es leichter zu Lesen. Ich benutze StatET plugin für Eclipse (ich habe versucht, ESS, aber ich finde es vergleichbar mit StatET), die durchaus zufriedenstellend für meine Linie der Arbeit.
- ja, ich bin damit einverstanden, aber die meisten der R-code, die ich habe zu ändern war ursprünglich nicht von mir erstellt
- Keith, guter Punkt. In diesem Fall, finde ich formatR wie eine ausgezeichnete option nutzen (wie Sie bereits herausgefunden haben).
- JGR tut auch code reformating
Du musst angemeldet sein, um einen Kommentar abzugeben.
Obwohl ESS ist eine viel bessere Lösung auf lange Sicht, wenn Sie nur eine schnelle Formatierung job, vielleicht ist diese packge wird helfen: http://yihui.name/en/?s=formatr.
Emacs mit ESS tut es außerordentlich gut - und die Standard-Einstellungen wie empfohlen von R Kern sind in Abschnitt 7 R-coding-standards der R Interna Handbuch.
=
oder<-
, und so weiter.Benutze ich StatET, und es funktioniert sehr gut für diese.
Könnte man auch versuchen, das formatR Paket auf CRAN.
Aber ich habe es nie benutzt, vielleicht die folgenden eclipse-plug-in http://www.walware.de/it/statet/ in der Lage sein könnte, zu helfen.
Können Sie mit Strg + I in statET zu beheben, die Einrückung von code.
Jedoch ist es möglich, formatR Paket mit code-snippets, die ein besseres Ergebnis vor allem durch zuweisen einer Tastenkombination zu.
Ich hatte das gleiche problem.
Es ist eine wirklich EINFACHE Möglichkeit zur Umformatierung in R-Studio :
Kopieren Sie einfach den gesamten code und füge es in eine neue
R script