====== Datenimport in R ======
Diese Anleitung beschreibt den Import der erhobenen Daten in [[https://www.r-project.org/|R Project for Statistical Computing]]. Sie haben hier im Wesentlichen zwei Möglichkeiten.
1. Sie können die Daten direkt aus R abrufen
2. Sie können in SoSci Survey ein Script und eine CSV-Datei herunterladen und diese importieren.
Im Hintergrund passiert dasselbe: Ein R-Script importiert eine CSV-Datei. Allerdings ist die erste Variante deutlich bequemer.
In beiden Fällen werden die Variablen mittels ''comment()'' mit einer Beschreibung versehen, und die Ausprägungen von Auswahlfragen werden -- wenn nicht anders eingestellt -- als ''factor'' hinterlegt. Bei Skalenfragen wird die Beschriftung der Antwortoptionen mittels ''attr()'' hinterlegt.
> comment(ds$SERIAL)
[1] "Personenkennung oder Teilnahmecode (sofern verwendet)"
> levels(ds$AB01)
[1] "Ja, regelmäßig" "Ab und zu"
[3] "Nein oder nur in Ausnahmefällen" "[NA] nicht beantwortet"
> attr(ds$SC01_01, "1")
[1] "trifft überhaupt nicht zu"
===== Import via API =====
Für den API-Download können Sie entweder eine temporäre oder eine dauerhaften URL verwendet.
* Temporäre URL:\\ **Erhobene Daten** -> **Daten herunterladen** -> Karteireiter //GNU R// -> Knopf //API-Import freischalten//.
* Dauerhafte URL:\\ **Erhobene Daten** -> **Datenabruf via API** -> Plus-Symbol rechts oben -> Funktion //Daten als CSV für R abrufen// -> Speichern\\ (den befehl finden Sie dann in der Zeile //Befehl// in der Übersicht)
In beiden Fällen liefert SoSci Survey einen kurzen Code, der wie folgt aussieht.
eval(parse("https://www.soscisurvey.de/rtr/?act=f20H7pQDcp1OCdseFRmCUSmj&vQuality&rScript", encoding="UTF-8"))
Dieser Code ruft ein Script direkt von der URL ab, interpretiert dieses als R-Script und führt es aus. Kopieren Sie diesen befehl in Ihre R-Konsole oder in ein R-Script und führen Sie es aus.
**Tipp:** Sollten Sie auf Probleme stoßen, können Sie das Script über die angegeben URL auch direkt im Browser abrufen, nach R kopieren und dort ausführen.
https://www.soscisurvey.de/rtr/?act=f20H7pQDcp1OCdseFRmCUSmj&vQuality&rScript
===== Import via Download =====
Wählen Sie unter **Erhobene Daten** -> **Daten herunterladen** den Karteireiter "GNU R" und laden Sie sowohl das R-Script (R-Datei) als auch die CSV-Datei heruntergeladen ([[download#gnu_r|Daten herunterladen: GNU R]]).
**Hinweis:** Wenn die Daten und das Script zu unterschiedlichen Zeitpunkten heruntergeladen wurden, dann passen die Dateien evtl. nicht zueinander (z.B. weil sich die Liste relevanter Variablen geändert hat).
**Hinweis:** Wählen Sie zum Download der Befragungsdaten das Dateiformat //GNU R//, nicht //CSV//. Dadurch stellen Sie sicher, dass die Formatierung der Datei zum Import-Script passt.
Die folgenden Schritte beschreiben das Vorgehen, wenn Sie für R die Bedienoberfläche RGui verwenden. Falls Sie R von der Konsole verwenden oder eine andere GUI wie [[http://www.rstudio.com/|RStudio]] einsetzen, ist das Vorgehen prinzipiell dasselbe.
Öffnen Sie das Script in R und starten Sie es:
* //Datei// -> //Öffne Script//
* //Bearbeiten// -> //Alles ausführen//
* Nun sollte sich ein Dialog zur Dateiauswahl öffnen (möglicherweise hinter dem aktiven Fenster). Wählen Sie hier die CSV-Datei aus, die Sie heruntergeladen haben und bestätigen Sie mit //Öffnen//.
Die Befragungsdaten sollten nun in dem Datenframe zu finden sein, das Sie beim Download des Scripts angegeben haben (Standard ist "data"). Mit dem R-Befehl ''str(data)'' können Sie die Variablen überprüfen.
===== Hinweise =====
Oben wurde bereits darauf hingewiesen, dass der R-Import die Variablen mittels ''[[https://www.rdocumentation.org/packages/base/versions/3.6.2/topics/comment|comment()]]'' beschriftet. Mit der Funktion ''Varlist()'' aus den ''[[https://github.com/BurninLeo/R-helpers|R-Helpers]]'' können Sie für Ihre ''data.frame'' eine Variablenübersicht anzeigen lassen, wie es sie z.B. in SPSS gibt.
Damit diese Informationen bei Subselects nicht verloren gehen, ergänzt das Import-Script standardmäßig eine Klasse ''avector'', welche die Attribute beim Subselect kopiert. Sollte der ''avector'' zum Beispiel bei einem ''bind_rows()'' zum Problem werden, kann man diese Klasse mit folgender Funktion entfernen.
remove_avector = function(x) {
x = data.frame(
lapply(x, function(xx) {
class(xx) = setdiff(class(xx), c("avector"))
return(xx)
})
)
return(x)
}
dc <- remove_avector(ds)
Beim Download via CSV-Datei und beim temporären API-Link können Sie die Zusatzfunktion über die Option "Funktion ergänzen, damit Variablen-Beschreibungen in Subsets erhalten bleiben" ein- und ausschalten.