Übung 2 - Data Wrangling

Datensätze einlesen und vorverarbeiten.

Auftrag

Erstellen Sie eine automatisierte Datenverarbeitungs-Pipeline, die die Daten des Random Dot Experiments einlesen und vorverarbeiten. Erstellen Sie einen neuen Datensatz und einen Data Report.

Vorgehen

  • Setup

    • Erstellen Sie ein R-Project inkl. Ordner namens complab_datawrangling_randomdot.

    • Erstellen Sie in diesem Projekt-Ordner einen Ordner namens data.

    • Laden Sie den Ordner mit den Datensätzen hier herunter. Entzippen Sie den Ordner und speichern Sie die Datensätze direkt in Ihrem data-Ordner.

    • Erstellen Sie ein neues .Rmd-File und speichern Sie dieses unter preprocessing_randomdot_data im Projekt-Ordner.

  • Automatierter Datenimport inkl. Vorverarbeiten (mit folgenden Schritten):

    • Einlesen Datensatz (read.csv())

    • Filtern der Daten, so dass nur Experimenttrials im Datensatz sind, keine Übungsaufgaben. (filter())

    • Erstellen einer neue Variable trial, die die Trialnummer startend mit 1 angibt (mutate())

    • Datensatz vereinfachen: Der Datensatz soll in dieser Reihenfolge folgende Informationen/Variablennamen enthalten (select()):

      • Versuchspersonenidentifikation (id)
      • Trialnummer (trial)
      • Bewegungsrichtung der Punkte (direction)
      • Instruktionsbedingung (condition)
      • Korrekte Antwort für diesen Trial (corrAns)
      • Antwort der Versuchsperson (resp),
      • war die Antwort der Versuchsperson korrekt? (corr)
      • Antwortzeit der Versuchsperson (rt)
Tipp

Am besten erstellen Sie zuerst für einen Datensatz einen funktionierenden Vorverarbeitungsablauf. Dann erstellen Sie eine Funktion für diesen Ablauf. In einem letzten Schritt automatisieren Sie dann diesen Ablauf für alle Datensätze im Datenordner indem Sie eine Liste mit allen Filenamen erstellen. Sie können sich an dem Automatisierungsbeispiel mit dem Stroop Datensatz orientieren.

Das Einlesen kann eine Weile dauern, es sind sehr viele Datensätze.

  • Datensatz kontrollieren:

    • Löschen Sie nun alle Variablen in der RStudio Umgebung (Environment) mit dem Besen-Icon oben rechts und führen Sie den Code nochmals aus. Wenn alles funktioniert, fahren Sie weiter.

    • Ihr Datensatz sollte nun wie untenstehend aussehen. Benutzen Sie dazu in Ihrem Code den Sie abgeben zwingend die Funktion glimpse().

Rows: 32,520
Columns: 8
$ id        <chr> "sub-10209782", "sub-10209782", "sub-10209782", "sub-1020978…
$ trial     <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 1…
$ direction <chr> "left", "right", "left", "right", "right", "left", "right", …
$ condition <chr> "speed", "speed", "speed", "speed", "speed", "speed", "speed…
$ corrAns   <chr> "left", "right", "left", "right", "right", "left", "right", …
$ resp      <chr> "right", "right", "left", "right", "right", "left", "right",…
$ corr      <int> 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, …
$ rt        <dbl> 5.8753379, 0.8221688, 0.9351370, 0.7454416, 1.5085055, 0.939…
  • Datensatz speichern

    • Speichern Sie den neuen Datensatz (der jetzt alle Datensätze vorverarbeitet und zusammengefügt enthält) als .csv-File namens dataset_rdk_clean.csv.
  • Erstellen Data Report in Form eines .html-Files (mit der Knit-Funktion).

    • Drücken Sie auf das Knit-Zeichen (Wollknäuel) um das .Rmd-File zu einem .html-File zu knitten.

    • Öffnen Sie das .html-File zur Kontrolle.

  • Hochladen Ordner auf Ilias unter Übung 2 mit:

    • preprocessing_randomdot_data.Rmd-File

    • preprocessing_randomdot_data.html-File

    • dataset_rdk_clean.csv-File

Abgabetermine

Gruppe Montag: 17. April 2024 23:55

Gruppe Mittwoch: 17. April 2024 23:55

Abgabetermin Korrektur: 5. Mai 2024 23:55 (gilt für beide Gruppen, Abgabe in Extraordner auf Ilias)

Trouble shooting

Das Einlesen funktioniert nicht.

Kontrollieren Sie bei der read.csv()-Funktion das sep = Zeichen. Passt dieses zum Datensatz?

Stimmt die Ordnerstruktur? Arbeiten Sie in einem R-Project, ist das .Rmd-File im selben Ordner wie das .Rproj-File und haben Sie die Daten im data-Ordner gespeichert (ungezippt, also nur die Datenfiles)?

Die Datensätze können nicht alle eingelesen werden, obwohl ein einzelner Datensatz eingelesen werden kann.

Bitte öffnen Sie die Dateien nur in R, nicht in Excel oder in einem anderen Programm, das kann die Formatierung ändern und Probleme beim Einlesen verursachen. Falls Sie die Daten schon geöffnet haben, laden Sie den Datensatz nochmals neu von der Website herunter und speichern Sie ihn im Datenordner.

Haben Sie die Pfade richtig gesetzt? Haben Sie die Funktion paste() korrekt genutzt?

Weitere Fehlermeldungen

Lesen Sie die Fehlermeldung genau durch: Finden Sie Informationen zur Lösung des Fehlers?

Häufigste Fehlerquellen:

  • Tippfehler

  • Formattierung Code-Chunk: Er muss mit ```{r} beginnen und mit ``` enden. Stellen Sie sicher, dass eine Lücke zum nächsten Code-Chunk besteht.

  • Reihenfolgenfehler: Löschen Sie alle Variablen mit dem “Besen”-Symbol oben rechts und lassen Sie Ihren Code nochmals von Beginn an durch laufen. Wo stockt der Code?

Bei Problemen, fragen Sie bitte in der nächsten Veranstaltung nach.

Feedback

Positiv aufgefallen:

  • Kommentare zum Code und dem Vorgehen eingefügt (erleichtert spätere Nachvollziehbarkeit)

  • Kreative Lösungen (z.B. for-Loop zum Daten einlesen) und kreatives Layout (z.B. Inhaltsverzeichnis im Markdown für HTML-Datei)

  • Unterdrücken von warnings und messages: Diese können in RMarkdown im Output-File (z.B. html-File) unterdrückt werden, so kann der relevante Code nachvollzogen werden, aber es wird nicht für jeden Datensatz die Information abgedruckt (Leserlichkeit)

  • Neue Zeile nach der Pipe: Es muss zwar nicht nach jeder Pipe eine neue Zeile genommen werden, der Code ist aber damit übersichtlicher und nachvollziehbarer.

Häufige Fehler:

  • glimpse() vergessen (dies diente dazu, dass im html-File sictbar wird, ob bspw. alle relevanten Variablen im bereinigten Datensatz vorhanden sind, etc.)

  • Verwenden von hard coded paths: Der Pfad sollte in der Funktion, die für das Zusammenfügen und Vorbereiten der Datensätze ist als Variable eingefügt werden (z.B. path). Wird hier der Pfad einer Versuchsperson eingefügt, wird immer wieder derselbe Datensatz eingelesen! Auch sollte der Pfad immer von dem .Rmd-File aus gelesen werden können und keine lokalen Informationen (z.B. C:/Users/... verwenden).

Reuse

Citation

BibTeX citation:
@online{wyssen,
  author = {Wyssen, Gerda and Fitze, Daniel},
  title = {Übung 2 - {Data} {Wrangling}},
  url = {https://kogpsy.github.io/neuroscicomplabFS24//pages/chapters/uebung_2_datawrangling.html},
  langid = {en}
}
For attribution, please cite this work as:
Wyssen, Gerda, and Daniel Fitze. n.d. “Übung 2 - Data Wrangling.” https://kogpsy.github.io/neuroscicomplabFS24//pages/chapters/uebung_2_datawrangling.html.