CSV
?JSON
von CSV
?00010111
in ihre Dezimalschreibweise auf.Laden Sie den (künstlich erzeugten) Datensatz erstwaehlende.csv auf Ihren Computer herunter. Sie können dazu den hier angegebenen Link nutzen und anschließend die Datei einfach speichern (Rechtsklick > Speichern unter …) oder die Datei bei GitHub manuell auswählen und anschließend als Raw
öffnen (und wieder speichern). Bei der Datei handelt es sich um eine einfache Textdatei, die Sie auch mit jedem Texteditor öffnen können (z.B. TextEdit unter MAC, Notepad oder Notepad++ unter Windows). Sie erhalten Einblick in die Datei, die – wie der Name schon sagt – mit Kommata getrennte Werte je Zeile enthält.
Speichern Sie die Datei auf Ihrem Computer.
Im nächsten Schritt sollen die Daten in eine passendere Software eingelesen werden. Dafür können Sie ein Tabellenkalkulationsprogramm nutzen (z.B. Calc, Excel, Sheets). Noch besser (für die weiteren Übungen) wäre aber eine für die CCS übliche Programmiersprache, also Python oder R. Für beide erhalten Sie hier ein wenig Starthilfe.
Python oder R müssen installiert werden. Entscheiden Sie sich für eines davon. Sie finden die Installationsdateien für Python hier und für R hier.
Im Anschluss installieren Sie außerdem eine sogenannte Entwicklungsumgebung, die Ihnen die (hier sehr einfach gehaltene) Programmierung erleichtert. Für Python empfehle ich Ihnen PyCharm, für R das RStudio. In beiden Fällen gibt es komplett kostenfreie und ausreichende Versionen, die “Community”, “Free” oder “Open Source” heißen.
Die Anweisungen sind hier etwas bewusst vage gehalten. Denn für den weiteren Verlauf der Übungen ist es unabdingbar, dass Sie konkrete Anwendungsschritte für die beiden Programmiersprachen selbst recherchieren lernen. Weitere Tipps und Anleitungen zur Installation sowie zu den ersten Schritten in Python und R erhalten Sie beispielsweise hier, hier, hier, hier oder hier.
Nach der Installation müssen Sie für die Praxisübungen zunächst eine Bibliothek (Python-Sprech) bzw. ein Paket (R-Sprech) installieren. Die hier vorgestellte und genutzte Bibliothek in Python heißt pandas, das entsprechende Paket in R nennt sich tidyverse. In Python installieren Sie von der Kommandozeile Ihres Computers (bzw. innerhalb von PyCharm über das Terminal) aus (mithilfe des folgenden Kommandos: pip install pandas
), in R direkt in R bzw. RStudio (install.packages('tidyverse')
).
Sind die Programmiersprache, die Entwicklungsumgebung und die Bibliothek bzw. das Paket installiert, kann der folgende Code ausgeführt werden. Legen Sie dazu ein neues Skript an und kopieren Sie sich einfach den Code. Achten Sie aber darauf, dass der .csv
-Datensatz und Ihr Skript im selben Verzeichnis liegen und auch von dort ausgeführt werden.
# Python
import pandas as pd
erstwaehlende = pd.read_csv('erstwaehlende.csv')
erstwaehlende
# R
library(tidyverse)
erstwaehlende <- read_csv('erstwaehlende.csv')
erstwaehlende
Wenn Sie keine Fehlermeldung erhalten, sondern stattdessen eine angedeutete Tabelle (in Python: dataframe; in R: tibble) sehen, sind Sie startklar.
Der Datensatz enthält (fiktive) Befragungsdaten von Erstwählenden (Merkmalsträger) in fünf Merkmalen:
id
ist eine eindeutige Kennung jeder befragten Person als Ganzzahlgeschlecht
enthält entweder ein d, ein m oder ein walter
ist ebenfalls eine Ganzzahl und gibt das Alter zum Zeitpunkt der Befragung ansmartphone
enthält den Hersteller des Smartphones der Befragtenparteipraeferenz
gibt die Wahlabsicht zum Zeitpunkt der Befragung (vor der Bundestagswahl) anBeschreiben Sie möglichst detailliert die Datentypen und Messniveaus der einzelnen Merkmale.
Zunächst gilt es, die Anzahl vorliegender Fälle zweifelsfrei zu identifizieren. Bereits dafür gibt es zahlreiche Herangehensweisen. Je zwei werden hier vorgestellt. Wie viele Erstwählende haben an der Befragung teilgenommen?
# Python
erstwaehlende.count()
len(erstwaehlende)
# R
erstwaehlende %>%
count()
nrow(erstwaehlende)
Um festzustellen, wie die genauen Merkmalsausprägungen im Datensatz vorliegen und um etwaige fehlende Werte zu identifizieren, ist es sinnvoll, zunächst alle Merkmale einzeln auszuzählen. Tun Sie das und beschreiben Sie Ihre Befunde. Ein Startbeispiel ist gegeben:
# Python
erstwaehlende.groupby(['geschlecht']).size()
# R
erstwaehlende %>%
count(geschlecht)
Beschreiben Sie das Altersmerkmal näher und geben Sie Median, Mittelwert und Modus sowie Standardabweichung an. Für Python suchen Sie für eine konkrete Umsetzung bestenfalls nach pandas describe numeric data
, für R installieren Sie das Paket tidycomm
und suchen online nach tidycomm describe numeric variable
.
Mit Grafiken beschäftigen wir uns später. Aber wir interessieren uns hier bereits für relative Werte. Können Sie mit Python oder R die prozentualen Anteile der Smartphone-Hersteller im Datensatz berechnen (und sogar nach Anteil absteigend sortieren)?
Ab hier folgen nun verschiedene Lösungswege zu den oben vorgestellten Übungen. Damit Sie die nicht “versehentlich” überscrollen und so Ihrer Übungsmöglichkeiten beraubt werden, folgt hier zunächst ein visueller Bruch.
JSON
ist ein Dateiformat für hierarchische Daten. Es beschreibt mithilfe einer Schlüssel-Wert-Notation jeden Wert einzeln und benötigt deshalb mehr Speicherplatz. Allerdings kann es mit globalen wie lokalen Merkmalen umgehen (CSV
: nur global) und kennt grundlegende Datentypen (Zahl vs. Text vs. fehlende Werte).id
: uint16 oder uint32, nominalskaliertgeschlecht
: char, nominalskaliertalter
: byte oder uint8 (oder höher), metrisch skaliertsmartphone
: string, nominalskaliertparteipraeferenz
: string, nominalskaliertEs sind 768 Fälle / Erstwählende im Datensatz.
id
: Ausprägungen von 1-768, keine fehlendgeschlecht
: 38d, 326m, 321w, 83 fehlend (NA
)alter
: Werte von 18 bis 32, keine fehlendsmartphone
: einer von elf Herstellern oder sonstige
(n = 75), keine fehlendparteipraeferenz
: eine von sechs Parteien oder sonstige
(n = 70) oder keine Angabe
(n = 20), keine fehlendAuf sonstige Hersteller entfallen weitere 10%.