Kurs:KnitR/Laden und Speichern

(Weitergeleitet von Einlesen der Daten in R)

Einführung

Bearbeiten

Das Laden und Speichern von Daten ist im Kontext von maßgeschneiderten Aufgabenblättern für Schüler:innen notwendig, die Daten der einzelnen Schülerprofile einzuladen und dessen Basis individuelle Aufgabenblättern zu erzeugen.

Schritte des Vorgehens

Bearbeiten
  • Laden und Speichern technisch in KnitR bzw. R umsetzen.
  • erste Auswertungen mit deskriptiver Statistik auf Basis der geladenen Auswertungsdaten erstellen.
  • erstes Übungsblatt erstellen, dass für die gesamte Klasse eine Aufgabenblatt erstellt und dabei besonders gut bearbeitete Aufgaben und weniger gut bearbeitet Aufgaben bzgl. Quantität und Schwierigkeitsgrad berücksichtigt.
  • individuelle Übungsblätter für jeden/jede Schüler:in unterschiedlich entsprechend Lernerprofil in den geladenen Daten.

Rohdaten

Bearbeiten

Für die Arbeit mit Daten verwenden wir einen kleinen Datensatz, der exemplarisch für eine Resultat einer Klassenarbeit mit mehreren Aufgaben steht. Jede Aufgabe steht für einen bestimmten Aufgabentyp in z.B. im Fach Mathematik.

Aufgabe - Vorüberlegungen

Bearbeiten

Zunächst einmal sollten Sie qualitativ festlegen, wie Sie mit

  • sehr gut bearbeiteten und
  • sehr schlecht bearbeiteten Aufgaben

bzgl. der Aufgabenauswahl auf dem zu erstellenden Aufgabenblatt umgehen wollen.

Themengebiete für das Übungsblatt

Bearbeiten

Für die Aufgabenanalyse betrachten Sie dazu als Beispiel

  • eine Aufgabe aus dem Arithmetikunterricht in der Grundschule Addition von zwei Zahlen mit 10er-Überschreitung und
  • eine Aufgabe aus der Stochastik zur Berechnung des Erwartungswertes

CSV Dateien

Bearbeiten

Oft liegen die Daten, die Sie analysieren wollen, in einem CSV-Format vor. Möchte man diese Daten z.B. statistisch auswerten, muss man diese von der eigenen Festplatte in den Arbeitsbereich einladen. Gegeben seien Klausurergebnis mit 3 Aufgaben und 5 Personen

  name , aufgabe1 , aufgabe2 , aufgabe3
  Anna ,    10 , 15 , 13 
  Bert ,   3.5 , 13 ,  0
  Camilla , 12 ,  8 , 15
  Dieter ,   5 ,  6 ,  7 
  Emilia ,  15 , 15 , 14.5

Dabei wird z.B. die obige CSV-Datei[1] in einen Dataframe studentdata geladen.

 studentdata <- read.csv("data.csv", header=TRUE, stringsAsFactors=FALSE)

Der folgende Befehl schreibt dann den Inhalte eines Dataframes in eine CSV-Datei (z.B. nach R die Punktesummen in den Teilaufgaben ausgerechnet hat).

Nun sollen die Spaltenvektoren für die Aufgabe 1, 2 und 3 aus der Tabelle (genannt "Dataframe") extrahiert werden und für alle Schüler:innen die Summe der Klausurergebnisse berechnet werden. Dies ist ein erster Schritt zur Datenverarbeitung.

  a1 <- studentdata$aufgabe1
  a2 <- studentdata$aufgabe2
  a3 <- studentdata$aufgabe3

Die Variablen   enthalten nun als Spaltenvektoren die Punkte für die einzelnen Aufgaben. Hinter dem Dollar-Zeichen verwendet man die entsprechende Spaltenüberschrift aus der CSV-Datei. Die Berechnung der Spaltensumme erfolgt dann analog zur Vektoraddition im   mit

 

In R wird nun die Summe der Spaltenvektoren entsprechend berechnet und das Ergebnis in dem Vektor   gespeichert. Danach wird   einer neuen Spalte mit Namen summe im Dataframe studentdata zugeordnet.

sa <- a1 + a2 + a3
studentdata$summe <- sa

Nach der obigen Operation hat die Tabelle (dataframe) eine 5. Spalte, in der die Summe der Aufgaben abgespeichert wird.

  name , aufgabe1 , aufgabe2 , aufgabe3 , summe
  Anna , 10 , 15, 13 , 38
  Bert , 3.5 , 13, 0 , 16.5
  Camilla , 12 , 8 , 15 , 35
  Dieter , 5 , 6 , 7 , 18 
  Emilia 15 , 15 , 14.5 , 44.5

Mit folgendem Befehl wird dann die Dataframe in der neu angelegten Datei datasumme.csv. Existiert die Datei bereits, wird diese überschrieben. Daher ist es ratsam für Rohdaten nicht zu überschreiben, sondern die verarbeiteten Daten in eine neue Datei zu schreiben. Dies gilt insbesondere, wenn man Fehler in der Verarbeitung hat und dann der Dataframe ggf. leer ist.

  write.csv(studentdata, "datasumme.csv", row.names = FALSE)

Laden von CSV-Dateien

Bearbeiten

Mit folgendem Befehl kann man die CSV-Datei in einen Dataframe einladen. In dem obigen Aufbau der CSV-Datei gibt es eine Headerzeile mit den Spaltenbezeichnungen.

 name , aufgabe1 , aufgabe2 , aufgabe3

Um R die Information zu geben, dass die erste Zeile als Spaltenbezeichnungen zu lesen sind, gibt man header=TRUE in Ladebefehl an. Dies ist in der Regel ein sinnvolles Vorgehen, weil man Zahlenwerten nicht ansieht, welche Bedeutung diese haben (z.B. Anzahl von Tieren Temperatur, Länge, Breite, Alter, ...). Fehlen diese Informationen und beginnt CSV-Datei direkt mit dem ersten Datensatz, verwendet man header=FALSE . Die obige Datei hätte dann das folgende Aussehen.

  Anna , 10 , 15, 13 
  Bert , 3.5 , 13, 0
  Camilla , 12 , 8 , 15
  Dieter , 5 , 6 , 7 
  Emilia 15 , 15, 14.5

Linux und Mac

Bearbeiten

Unter Linux und Mac wird der Pfadnamen standardmäßig mit einem Slash "/" getrennt

 studentdata <- read.csv("/home/teacher/dokuments/data.csv", header=TRUE, stringsAsFactors=FALSE)

Unter Windows ist der Backslash "\" zur Trennung der Pfadnamen verwendet. Im Pfadname ist dabei der doppelte Backslash als Trennung zu verwenden.

 studentdata <- read.csv("C:\\Users\\Teacher\\Dokumente\\data.csv", header=TRUE, stringsAsFactors=FALSE)

Speichern von CSV-Dateien

Bearbeiten

In diesem Beispiel geht man davon, dass die Daten in R in einem Dataframe vorliegen. Der Dataframe wurde dabei durch einen Auswertungsalgorithmus neu erzeugt, bzw. ein Dataframe mit Rohdaten wurde durch den Algoríthmus modifiziert. Im obigen Beispiel hat der der Algorithmus die Summe aller Teilaufgaben ausgerechnet und das Ergebnis in einer Spalte summe ergänzt.

  name , aufgabe1 , aufgabe2 , aufgabe3 , summe
  Anna , 10 , 15, 13 , 38
  Bert , 3.5 , 13, 0 , 16.5
  Camilla , 12 , 8 , 15 , 35
  Dieter , 5 , 6 , 7 , 18 
  Emilia 15 , 15 , 14.5 , 44.5

StringsAsFactors

Bearbeiten

Wenn man diese CSV-Speicherungsmethode verwendet, sollte man im Normalfall spezifizieren, das Stringvariable (hier die Vornamen in der ersten Spalte) nicht als Faktoren interpretiert werden. Dies erfolgt mit dem Parameter stringsAsFactors=FALSE. Damit konvertiert R die Textvariable in der ersten Spalte nicht in einen Faktor.


Linux und Mac

Bearbeiten

Unter Linux und Mac wird auch beim Speichern der Pfadnamen standardmäßig mit einem Slash "/" getrennt. Wenn die Rohdate

  write.csv(studentdata, "/home/teacher/dokuments/datasumme.csv", row.names = FALSE)

Unter Windows ist der Backslash "\" zur Trennung der Pfadnamen verwendet. Im Pfadname ist dabei der doppelte Backslash als Trennung zu verwenden.

  write.csv(studentdata, "C:\\Users\\Teacher\\Dokumente\\datasumme.csv", row.names = FALSE)

Aufgaben - Mehrdimensionale lineare Regression

Bearbeiten
  • Laden Sie eine Datei mit Daten für eine mehrdimensionale lineare Regression und führen Sie die mehrdimensionale lineare Regression durch!
  • Speichern Sie die berechnete darstellende Matrix für die lineare Abbildung in eine CSV-Datei ab.

Siehe auch

Bearbeiten

Quellennachweis

Bearbeiten
  1. Bert Niehaus (2023) GitHub-Repository KnitR for Education https://github.com/niebert/knitr4education für eine Wikiversity-Lernressource - Datei: data.csv

Seiteninformation

Bearbeiten

Diese Lernresource können Sie als Wiki2Reveal-Foliensatz darstellen.

Wiki2Reveal

Bearbeiten

Dieser Wiki2Reveal Foliensatz wurde für den Lerneinheit Kurs:Didaktik der Stochastik für Lernumgebungen/Technische Umsetzung' erstellt der Link für die Wiki2Reveal-Folien wurde mit dem Wiki2Reveal-Linkgenerator erstellt.