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
InformationsquelleAutor Keith | 2010-06-10
Schreibe einen Kommentar