Ich meine nicht wie man ein Package erstellt,
Naja, aber das meine ich ja mit dem äußersten. Die ganze Analyse und der Workflow als Package!
Mir ging es nicht darum wie man ein package erstellt, sondern wie man das package framework nutzen kann für einen workflow.
Das hat einpaar nette Vorteile, im vergleich zu einer Sammlung von losen skripten:
- Man hat Funktionen die man kombinieren kann
- Man hat direkt eine Dokumentation dabei
- Man kann tests laufen klassen
- Man kann die analysen leicht weitergeben
- ....
Ich hoffe du verstehst worauf ich hinaus will?
welches aus mehreren R-Skripten besteht, wo es bspw. eine main.R gibt und dann zusätzlich SkripA, SkriptB und SkripC, wo jedes Skript Daten importiert, weiterverarbeitet und die Objekte dann speichr für das nächste Skript
OK, dann hier zwei Beispiele aus meinen Projekten:
1) Eine SimulationsStudie zur Power bei Experimenten mit wenig Replikaten:
github
0-load.R setzt das Projekt auf, setzt Pfade, lädt packages, ...
0-functions.R wird darin aufgerufen und enhtällt geschriebene Funktionen
1-simulations.R simuliert Daten und speichert die ergebnisse auf die Platte (.rds)
2-results.R greift diese von der Platte auf und macht einpaar Bildchen und Tabellen draus.
Die Zahl am Anfang des skriupts gibt die Reihenfolge an. Das müsste auch bei dir so laufen.
2) Mein
aktuelles Projekt (gerade bei einem Fachjournal eingereicht): Zeiträumliche Einflüsse und Dynamiken von Risiko für Gewässer die von Pestiziden ausgehen. Das wird bei dir nicht laufen, da die credentials.R Datei fehlt.
load.R - lädt packages und funktionen (functions.R)
clean.R - holt sich Daten von einem Postgresql-Server und bereitet die einwenig auf und speichert sie auf die Platte (.csv)
do_overview.R - Gibt einen Überblick über die Datenlage (greift dazu die Daten von der Platte, erstellt ne Karte und Tabellen, verschneidet Daten mit Niederschlafgsdaten etc.
do_sizeargi.R - Greift die Daten auf und untersucht den Einfluss von Landwirtschaft und GEwässergröße
do_*.R - Andere do scripte greifen die Daten auf und machen was anderes damit und exportieren die Ergbnisse (Grafiken/Tabellen) auf die Platte. Von dort werden sie dann von einem LaTeX Dokument aufgenommen und in einen report gepackt.
3)
Hier ein Beispiel von Herrrn Wickham, der das wohl auch gut findet...
Das load - clean -do Konzept finde ich sehr gut, hab ich mir glaube ich bei Rob Hyndman
abgeschaut. Es gibt auch packages dafür (z.b.
projecttemplate)), aber ich bin flexibler und hab weniger Zeug, dass ich nicht brauch wenn ich mir es selbst schreibe.
remake geht auch in die Richtung und ist einen Blick wert.