====== 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.