Statistische Projektverzeichnisstruktur mit mehreren Sprachen (z. B. R und Splus)?

9

Aufbauend auf der Post Wie man ein statistisches Analyseprojekt und das ProjectTemplatePaket in R ...

F: Wie erstellen Sie Ihre statistische Projektverzeichnisstruktur, wenn mehrere Sprachen stark vertreten sind (z. B. R AND Splus)?

Die meisten Diskussionen zu diesem Thema beschränkten sich auf Projekte, die hauptsächlich eine Sprache verwenden. Ich beschäftige mich mit der Minimierung von Schlamperei, Verwirrung und Bruch, wenn mehrere Sprachen verwendet werden.

Ich habe unten meine aktuelle Projektstruktur und Methoden für die Ausführung von Dingen aufgeführt. Eine Alternative könnte so um Code sein , dass ich ./Rund ./SplusVerzeichnisse --- jeweils ihre eigenen /lib, /src, /util, /tests, und /mungeVerzeichnisse.

F: Welcher Ansatz kommt "Best Practices" (falls vorhanden) am nächsten?

  • / data - projektübergreifende Daten
  • / library - Skripte, die projektübergreifend gemeinsam genutzt werden
  • / projects / myproject - mein Arbeitsverzeichnis. Wenn ich mehrere Sprachen verwende, teilen sie diesen Speicherort derzeit als Arbeitsverzeichnis.
  • ./data/ - Daten spezifisch für /myprojectund Symlinks zu Daten in/data
  • ./cache/ - zwischengespeicherte Arbeitsbereiche (z. B. .RDataDateien, die mit save.image()R .sddgespeichert wurden, oder Dateien, die mit data.dump()Splus gespeichert wurden)
  • ./lib/ - Hauptprojektdateien. Über alle Projekte hinweg gleich. Ein R Projekt wird über ausgeführt wird source("./lib/main.R")das wiederum läuft load.R, clean.R, test.R, analyze.R, .report.R. Derzeit , wenn mehrere Sprachen verwendet werden, sagen wir, Splus zusätzlich zu R, werde ich werfen main.ssc, clean.sscetc. in dieses Verzeichnis als auch. Ich bin mir nicht sicher, ob mir das gefällt.
  • ./src/ - projektspezifische Funktionen. Sammelte eine Funktion pro Datei.
  • ./util/ - allgemeine Funktionen, die eventuell verpackt werden müssen. Sammelte eine Funktion pro Datei.
  • ./tests/ - Dateien zum Ausführen von Testfällen. Benutzt von./lib/test.R
  • ./munge/ - Dateien zum Bereinigen von Daten. Benutzt von./lib/clean.R
  • ./figures/ - Tabellen und Abbildungen ./lib/report.R, die im Abschlussbericht verwendet werden sollen
  • ./report/ - .texDateien und Symlinks zu Dateien in./figures
  • ./presentation/ - .texDateien für Präsentationen (normalerweise die BeamerKlasse)
  • ./temp/ - Speicherort für temporäre Skripte
  • ./LIESMICH
  • ./MACHEN
  • ./.RData - zum Speichern von R-Projektarbeitsbereichen
  • ./.Data/ - zum Speichern von S-Projektarbeitsbereichen
lowndrul
quelle
1
Dies bekommt definitiv mehr Antworten auf stackoverflow.com
mpiktas
1
@mpiktas, aber das ist sehr wichtig für angewandte Statistiker.
Karl

Antworten:

2

Ich würde es definitiv nicht "Best Practices" nennen, aber mein typisches Projekt hat Verzeichnisse

R(die in der Regel enthält prepData.R, analysis.R, func.R, und figs.Rkönnte allerdings sein , diese könnten jede Aufteilung in viele Dateien und Sweave oder nutzen könnte asciidoc )

Perl (hauptsächlich zum Parsen / Konvertieren von Datendateien)

RawData (alle Originaldatendateien)

Data (alle verarbeiteten Dateien)

Notes (in der Regel Notizen des Mitarbeiters)

Das RVerzeichnis enthält häufig Unterverzeichnisse Figsund Rcache.

Besonders wichtig: Versionskontrolle ! Ich mag git .

Karl
quelle