Aufbauend auf der Post Wie man ein statistisches Analyseprojekt und das ProjectTemplate
Paket 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 ./R
und ./Splus
Verzeichnisse --- jeweils ihre eigenen /lib
, /src
, /util
, /tests
, und /munge
Verzeichnisse.
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
/myproject
und Symlinks zu Daten in/data
- ./cache/ - zwischengespeicherte Arbeitsbereiche (z. B.
.RData
Dateien, die mitsave.image()
R.sdd
gespeichert wurden, oder Dateien, die mitdata.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äuftload.R
,clean.R
,test.R
,analyze.R
,.report.R
. Derzeit , wenn mehrere Sprachen verwendet werden, sagen wir, Splus zusätzlich zu R, werde ich werfenmain.ssc
,clean.ssc
etc. 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/ -
.tex
Dateien und Symlinks zu Dateien in./figures
- ./presentation/ -
.tex
Dateien für Präsentationen (normalerweise dieBeamer
Klasse) - ./temp/ - Speicherort für temporäre Skripte
- ./LIESMICH
- ./MACHEN
- ./.RData - zum Speichern von R-Projektarbeitsbereichen
- ./.Data/ - zum Speichern von S-Projektarbeitsbereichen
quelle
Antworten:
Ich würde es definitiv nicht "Best Practices" nennen, aber mein typisches Projekt hat Verzeichnisse
R
(die in der Regel enthältprepData.R
,analysis.R
,func.R
, undfigs.R
kö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
R
Verzeichnis enthält häufig UnterverzeichnisseFigs
undRcache
.Besonders wichtig: Versionskontrolle ! Ich mag git .
quelle