Zum Inhalt springen

Kurs:KnitR/Laden und Speichern

Aus Wikiversity

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)

Windows

[Bearbeiten]

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)

Windows

[Bearbeiten]

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.