Chapter 9 Datenmanagement
Der Beitrag wurde das letzte mal am 04 November, 2021 editiert
Managing your projects in a reproducible fashion doesn't just make your science reproducible, it makes your life easier.
— Vince Buffalo (@vsbuffalo) April 15, 2013
🔍 https://swcarpentry.github.io/r-novice-gapminder/02-project-intro/index.html
Über den Satz bin ich kürzlich gestolpert und es steckt seeeehr viel Wahrheit darin. Eins meiner ersten Projekte in R hat sich mit der Entwicklung von Bodentemperaturen in NRW beschäftigt. Hier ein Screenshot über die Ordnerstruktur:
Es geht mit Sicherheit noch schlimmer, es geht aber mit Sicherheit auch besser! Im Laufe der Zeit wachsen die Dateien in einem Projekt und man verliert schnell den Überblick. Die wichtigsten Gründe warum man so ein Chaos vermeiden sollte:
- Man kann nicht sagen, welche Daten Rohdaten sind und welche neu generiert wurden.
- Es wird sehr unübersichtlich, da verschiedene Dateitypen gemixt werden.
- Es dauert lange die richtige Datei zu finden und/oder einer Analyse zuzuordnen.
Die Vorteile einer guten Projektstruktur bietet also:
- Ein seriöseres Projektmanagement mit höheren Anspruch an die Daten
- Code oder Informationen mit Kollegen zu teilen geht schneller
- Nach einer Pause an dem Projekt gelingt es einem schneller wieder hereinzufinden
Eins der wichtigsten tools in RStudio ist das Anlegen eines Projektes.
File -> New Project -> New Directory -> Klick New Project -> Vergebe einen Projektnamen -> Klick Create Project
Der einfachste Weg ein R Projekt zu öffnen (mit der Endung .Rproj) ist Doppelklick in dem Ordner in dem das Projekt hinterlegt wurde.
💡 Alle Daten, Abbildunge, Skripte, … werden mit diesem R Projekt verknüpft sein, dass bedeutet sie sind unabhängig von dem individuellen Pfad (bspw. C:\Dorau\Arbeit\04. Veröffentlichungen\01. Veröffentlichungen\06. Soil temperatures in NRW\01. Reporting R
) sondern alles ist relativ zu der .Rproj Datei.
Tipps für eine gutes Projektmanagement sind die folgenden:
- read only Excel oder andere Austauschformate sind Interaktiv und können manipuliert werden, bspw. durch Verknüpfungen in den Zellen.
- Daten bereinigen ist ein wichtiger und zeitaufwändiger Schritt. Wenn man eine grobe Datenaufbereitung auch in Excel durchgeführt hat empfiehlt es sich, den ursprünglichen Datensatz als zweite Datei abzuspeichern die nur zum Einlesen der Daten in R verwendet wird.
- Analysen in einem Skript sollten reproduzierbar sein Beim Schreiben von Skripten ist es das Ziel, Abbildungen und generell Metadaten zu erzeugen. Dieser Output sollte von jedem externen anwendbar sein, nur bei Bereitstellung des Skriptes und der Rohdaten.
- Jedes Projekt sollte einen eigenen Ordner haben, der nach dem Projekt benannt ist.
- Erstelle Unterordner in dem Projekt, bspw. um Abbildungen in ein Skript zu laden (
images
), Daten (data
), Literatur (doc
) und Ergebnisse der Analyse in einen Ergebnisordner (results
). - Benenne alle Dateien so, dass sie einen Inhalt oder eine Funktion wiederspiegeln.
Nun haben wir eine schöne Ordnerstruktur und können diese Nutzen, um Daten einzulesen. Unsere Daten sind relativ zu dem .Rproj abgespeichert. Wollen wir nun die Daten einlesen mit dem Namen data.csv
, die im Ordner data
abgespeichert sind müssen wir nur angeben:
# Erstelle ein Objekt df mit den Daten data.csv
<- read_delim("data/data.csv", delim = ";") df
Viel Besser und reproduzierbarer im Gegensatz zu:
<- read_delim("C:\Dorau\Arbeit\04. Veröffentlichungen\01. Veröffentlichungen\06. Soil temperatures in NRW\01. Reporting R/data.csv", delim = ";") df
Beim zweiten sind Fehlermeldungen vorprogrammiert und Herr oder Frau XY können auch nichts damit anfangen, da ihr Computer mit Sicherheit nicht Dorau heißt und auch die weiteren Pfade quatsch sind.