gles
NA
s)Bisher haben wir uns mit unterschiedlichen Objektklassen in
R
auseinandergesetzt. Nun möchten wir externe Datensätze
einladen und aufbereiten. Dabei lernen wir zunächst die Datensätze
kennen, mit denen wir im weiteren Kursverlauf arbeiten werden.
Anschließend wollen wir die darin enthaltenen Variablen so anpassen,
dass wir unsere Analysen durchführen können, d.h. die Variablen
umkodieren. Dieser Prozess muss vor jeder Analyse durchgeführt werden.
Damit Ihre Veränderungen am Datensatz für Sie und andere nachvollziehbar
sind, ist es sinnvoll, die Kommentarfunktion zu nutzen. Wenn eine Zeile
mit #
beginnt, ignoriert R
den Text in der
entsprechenden Zeile. Mithilfe von Kommentaren können Sie Ihre
Arbeitsschritte beschreiben und Ihre Analyse übersichtlicher
gestalten.
Bisher haben wir uns mit unterschiedlichen Objektklassen in
R
auseinandergesetzt. Nun möchten wir externe Datensätze
einladen und aufbereiten. Dabei lernen wir zunächst die Datensätze
kennen, mit denen wir im weiteren Kursverlauf arbeiten werden.
Anschließend wollen wir die darin enthaltenen Variablen so anpassen,
dass wir unsere Analysen durchführen können, d.h. die Variablen
umkodieren. Dieser Prozess muss vor jeder Analyse durchgeführt werden.
Damit Ihre Veränderungen am Datensatz für Sie und andere nachvollziehbar
sind, ist es sinnvoll, die Kommentarfunktion zu nutzen. Wenn eine Zeile
mit # beginnt, ignoriert R
den Text in der entsprechenden
Zeile. Mithilfe von Kommentaren können Sie Ihre Arbeitsschritte
beschreiben und Ihre Analyse übersichtlicher gestalten.
Besuchen Sie die Website des GESIS Leibniz Instituts für Sozialwissenschaften unter https://www.gesis.org/home. Die GESIS bietet einen großen Fundus an sozialwissenschaftlichen Daten. Hier finden Sie eine Reihe relevanter Forschungsdaten wie die Allgemeine Bevölkerungsumfrage der Sozialwissenschaften (ALLBUS) oder das Sozio-ökonomische Panel (SOEP). Suchen Sie in der Suchleiste nach dem “Nachwahl-Querschnitt (GLES 2017)”. Die German Longitudinal Election Study (GLES) ist ein Projekt der GESIS in Kooperation mit der Deutschen Gesellschaft für Wahlforschung (DGfW). Sie vereint Vor- und Nachwahlbefragungen einer repräsentativen Stichprobe der Wählerschaft bei Bundestagswahlen. Für den verwendeten Nachwahl-Querschnitt wurden die Befragten im Nachgang der Bundestagswahl 2017 zu politischen Themen, Einstellungen und Verhaltensweisen, Meinungsbildung im Wahlkampf sowie sozio-demografischen Merkmalen befragt. Damit ist es uns möglich, Einflussfaktoren der Wahl zu bestimmen.
Laden Sie sich unter “Downloads” -> “Datensätze” Version
“ZA6801_de_v4-0-1.sav deutsch (Datensatz)” herunter. Dafür müssen Sie
ein Konto bei der GESIS erstellen. Laden Sie sich unter “Fragebögen”
außerdem den Fragebogen “ZA6801_fb.pdf deutsch” und unter “andere
Dokumente” die Studienbeschreibung “ZA6801_sb.pdf” herunter und machen
Sie sich mit beiden vertraut. Die Variablennamen sind technisch gehalten
und wenig aussagekräftig, weshalb die Begleitdokumentation wesentlich
ist, um zu verstehen, welche inhaltliche Bedeutung dahintersteckt. Legen
Sie den Datensatz an einer geeigneten Stelle auf ihrem Computer ab. Am
besten ist es, wenn Sie sich einen Ordner zu diesem Kurs anlegen, in dem
Sie den Datensatz ablegen. Um den Datensatz in R
einzuladen, müssen wir zunächst herausfinden, auf welchen Ordner
R
zugreift. Mit dem Befehl getwd()
wird uns
das derzeitige Arbeitsverzeichnis (,,wd“ steht für Working Directory)
angezeigt.
getwd()
Nun zeigt R
an, wo es Daten einliest und wo es sie
speichert. Wir wollen nun erreichen, dass R
auf den Ordner
zugreift, in dem Sie Ihren Datensatz abgelegt haben. Dazu legen wir das
Verzeichnis mit setwd()
fest. Schreiben Sie dazu den Pfad
zu dem Verzeichnis, in dem der Datensatz abgelegt ist, in
Anführungszeichen in die Funktion und führen Sie diese aus. Bei Apple
weist ein Dateipfad beispielsweise die folgende Struktur auf:
“/Users/nutzer/documents/r_selbstlernkurs”. Bei Windows lautet der Pfad:
“C:/Users/nutzer/r_selbstlernkurs”. Möchten Sie Ihr Arbeitsverzeichnis
woanders anlegen bzw. anders benennen, müssen Sie den Pfad entsprechend
anpassen. Nachfolgend müssen Sie also immer, wenn von “Eigener Pfad” die
Rede ist, das von Ihnen gewählte Verzeichnis einsetzen. Wenn Sie Windows
nutzen und Ihren Pfad kopieren, dann müssen Sie darauf achten, dass Sie
die Schrägstriche anpassen. Das heißt, dass Sie \
durch
/
austauschen müssen.
setwd("eigener Pfad")
Nun können wir den Datensatz von R
aus ansteuern und
laden. Dazu müssen wir R
lediglich anhand des Dateipfades
mitteilen, wo der Datensatz abgelegt ist. Der Datensatz liegt im
Datenformat .sav
vor, dem Format des Statistikprogramms
SPSS. Deshalb benötigen wir eine spezielle Funktion, mit der wir den
Datensatz laden können. Die Funktion, die wir zum Laden des Datensatzes
verwenden, lautet read.spss()
aus dem Paket
foreign
. Wir installieren und laden das Paket:
install.packages("foreign")
library(foreign)
Nun können wir den Datensatz mit der Funktion
read.spss()
laden. Wir speichern den Datensatz in dem
Objekt gles
. Außerdem spezifizieren wir das Argument
to.data.frame = TRUE
, mit dem wir festlegen, dass der
Datensatz in Form eines Dataframe gespeichert werden soll.
gles <- read.spss(file = "ZA6801_de_v4-0-1.sav", to.data.frame = TRUE)
Beachten Sie: In dieser Form funktioniert der Code nur, da wir das
Verzeichnis mittels setwd()
so definiert haben, dass
R
im gewählten Arbeitsverzeichnis die Datei
“ZA6801_de_v4-0-1.sav” findet. Hätten wir das Verzeichnis nicht
festgelegt, müssten wir den gesamten Dateienpfad (inklusive der Datei)
im Argument file
nennen.
Um den Datensatz zu “Patterns of Democracy” (Lijphart 2012) zu laden, gehen wir etwas anders vor. Diesen Datensatz können Sie per Mausklick über den Downloadbutton auf dieser Website herunterladen. Die Datei heißt “Lijphart_Data_recode.csv” und wird unter Downloads gespeichert. Achten Sie darauf, dass Sie die Datei in Ihr Arbeitsverzeichnis verschieben.
“Patterns of Democracy” ist ein Klassiker der Demokratieforschung und untersucht zwei Typen von Demokratien, die Mehrheitsdemokratie mit dem klassischen Beispiel Großbritannien und die Konsensdemokratie mit dem klassischen Beispiel Deutschland. Der vorliegende Datensatz beinhaltet alle Variablen, die Lijphart verwendet, um die latenten Konzepte Mehrheits- und Konsensdemokratie zu messen. Die Beobachtungseinheiten sind, anders als beim GLES, nicht Befragte, sondern Demokratien. Ebenfalls anders als der GLES-Datensatz, liegt der Lijphart-Datensatz im CSV-Format vor, d.h. alle Werte stehen in einer Zeile hintereinander, jeweils durch ein Komma oder Semikolon getrennt (CSV steht für comma-separated values).
Nachdem uns nun beide Datensätze zur Verfügung stehen, möchten wir
einen Überlick über die darin enthaltenen Variablen bekommen. Eine
einfache Möglichkeit dazu ist die Funktion str()
(“structure”), die den Objekttyp sowie einen Überblick über die
Variablen und enthaltenen Werte zeigt.
str(gles)
## 'data.frame': 2112 obs. of 602 variables:
## $ study : Factor w/ 1 level "ZA6801": 1 1 1 1 1 1 1 1 1 1 ...
## $ version : chr "4-0-1 (2019-02-26)" "4-0-1 (2019-02-26)" "4-0-1 (2019-02-26)" "4-0-1 (2019-02-26)" ...
## $ doi : chr "doi:10.4232/1.13235" "doi:10.4232/1.13235" "doi:10.4232/1.13235" "doi:10.4232/1.13235" ...
## $ year : Factor w/ 1 level "2017": 1 1 1 1 1 1 1 1 1 1 ...
## $ field : chr "2017-09-25 bis 2017-11-30" "2017-09-25 bis 2017-11-30" "2017-09-25 bis 2017-11-30" "2017-09-25 bis 2017-11-30" ...
## $ glescomp : Factor w/ 9 levels "Komponente 1: Vor- und Nachwahl-Querschnitt",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ survey : Factor w/ 3 levels "Vorwahl-Querschnitt",..: 2 2 2 2 2 2 2 2 2 2 ...
## $ lfdn : num 1 2 3 4 5 6 7 8 9 10 ...
## $ intnum : num 63 63 63 63 63 63 63 63 63 63 ...
## $ welle : Factor w/ 2 levels "Basisbearbeitung",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ intdate : num 1.37e+10 1.37e+10 1.37e+10 1.37e+10 1.37e+10 ...
## $ beginn : chr "2017/11/18 1506:15" "2017/10/04 1652:52" "2017/10/05 1446:27" "2017/10/02 1058:37" ...
## $ ende : chr "2017/11/18 1642:12" "2017/10/04 1820:12" "2017/10/05 1650:28" "2017/10/02 1224:38" ...
## $ intdauer_ges: num 95.9 87.3 124 86 75.2 ...
## $ bula : Factor w/ 16 levels "Schleswig-Holstein",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ ostwest : Factor w/ 2 levels "Ostdeutschland",..: 2 2 2 2 2 2 2 2 2 2 ...
## $ ostwest2 : Factor w/ 2 levels "Ostdeutschland",..: 2 2 2 2 2 2 2 2 2 2 ...
## $ vpoint : num 2858 2858 2858 2858 2858 ...
## $ wahlkreis : Factor w/ 299 levels "1 Flensburg / Schleswig",..: 9 9 9 9 9 9 9 9 9 9 ...
## $ w_ow : num 1.2 1.2 1.2 1.2 1.2 ...
## $ w_ipfges : num 0.977 0.655 0.636 0.551 0.931 ...
## $ w_ipfost : num NA NA NA NA NA NA NA NA NA NA ...
## $ w_ipfwes : num 0.834 0.55 0.554 0.463 0.806 ...
## $ q1 : Factor w/ 2 levels "maennlich","weiblich": 1 1 2 1 2 1 2 1 2 2 ...
## $ q2b : Factor w/ 12 levels "Januar","Februar",..: 6 4 1 10 5 4 3 1 4 11 ...
## $ q2c : Factor w/ 79 levels "1922","1923",..: 38 42 31 17 79 37 29 54 52 76 ...
## $ q2d : Factor w/ 2 levels "nicht wahlberechtigt",..: 2 2 2 2 1 2 2 2 2 2 ...
## $ q3_c1 : Factor w/ 302 levels "POLITISCHE PROZESSE (POLITICS-THEMEN)",..: 100 188 59 177 195 144 58 236 195 261 ...
## $ q3_c2 : Factor w/ 302 levels "POLITISCHE PROZESSE (POLITICS-THEMEN)",..: NA 190 NA NA 193 141 NA NA 196 NA ...
## $ q3_c3 : Factor w/ 302 levels "POLITISCHE PROZESSE (POLITICS-THEMEN)",..: NA 187 NA NA 107 NA NA NA NA NA ...
## $ q3_c4 : Factor w/ 302 levels "POLITISCHE PROZESSE (POLITICS-THEMEN)",..: NA NA NA NA NA NA NA NA NA NA ...
## $ q3_c5 : Factor w/ 302 levels "POLITISCHE PROZESSE (POLITICS-THEMEN)",..: NA NA NA NA NA NA NA NA NA NA ...
## $ q4_c1 : Factor w/ 302 levels "POLITISCHE PROZESSE (POLITICS-THEMEN)",..: 159 200 54 72 87 261 180 71 170 195 ...
## $ q4_c2 : Factor w/ 302 levels "POLITISCHE PROZESSE (POLITICS-THEMEN)",..: 156 NA NA NA 82 NA NA NA 171 NA ...
## $ q4_c3 : Factor w/ 302 levels "POLITISCHE PROZESSE (POLITICS-THEMEN)",..: NA NA NA NA NA NA NA NA NA NA ...
## $ q4_c4 : Factor w/ 302 levels "POLITISCHE PROZESSE (POLITICS-THEMEN)",..: NA NA NA NA NA NA NA NA NA NA ...
## $ q4_c5 : Factor w/ 302 levels "POLITISCHE PROZESSE (POLITICS-THEMEN)",..: NA NA NA NA NA NA NA NA NA NA ...
## $ q5a : Factor w/ 55 levels "CDU/CSU","CDU",..: 2 4 54 1 1 6 4 5 42 4 ...
## $ q5b : Factor w/ 55 levels "CDU/CSU","CDU",..: 2 4 54 1 1 6 4 5 42 4 ...
## $ q6a : Factor w/ 55 levels "CDU/CSU","CDU",..: 6 4 53 1 1 54 4 5 NA 2 ...
## $ q6b : Factor w/ 55 levels "CDU/CSU","CDU",..: 6 4 53 1 1 54 4 5 NA 2 ...
## $ q7 : Factor w/ 4 levels "sehr aufmerksam",..: 3 2 1 1 2 1 1 1 3 2 ...
## $ q8a : Factor w/ 5 levels "stimme voll und ganz zu",..: 2 3 1 1 3 1 3 3 1 1 ...
## $ q8b : Factor w/ 5 levels "stimme voll und ganz zu",..: 3 3 4 3 3 4 5 3 3 4 ...
## $ q8c : Factor w/ 5 levels "stimme voll und ganz zu",..: 2 3 1 1 4 3 2 3 4 1 ...
## $ q8d : Factor w/ 5 levels "stimme voll und ganz zu",..: 3 5 5 4 4 5 5 5 3 3 ...
## $ q8e : Factor w/ 5 levels "stimme voll und ganz zu",..: 3 4 2 2 3 5 2 5 1 3 ...
## $ q9a : Factor w/ 4 levels "sehr wichtig",..: 3 4 4 3 1 4 4 4 4 4 ...
## $ q9b : Factor w/ 4 levels "sehr wichtig",..: 3 4 4 3 3 4 4 4 4 3 ...
## $ q9c : Factor w/ 4 levels "sehr wichtig",..: 1 1 1 2 1 1 2 2 1 1 ...
## $ q9d : Factor w/ 4 levels "sehr wichtig",..: 4 4 4 2 3 3 2 4 2 2 ...
## $ q10 : Factor w/ 4 levels "sehr verbreitet",..: 1 3 2 4 3 3 1 3 1 2 ...
## $ q11 : Factor w/ 4 levels "sehr gute Arbeit geleistet",..: 2 2 2 2 2 3 2 3 2 2 ...
## $ q12a : Factor w/ 5 levels "viel hoeher als heute",..: 2 2 3 2 2 1 2 3 1 2 ...
## $ q12b : Factor w/ 5 levels "viel hoeher als heute",..: 1 1 3 2 3 1 1 1 1 1 ...
## $ q12c : Factor w/ 5 levels "viel hoeher als heute",..: 3 3 3 1 4 3 3 NA 4 2 ...
## $ q12d : Factor w/ 5 levels "viel hoeher als heute",..: 3 5 3 2 2 3 2 2 1 3 ...
## $ q12e : Factor w/ 5 levels "viel hoeher als heute",..: 1 1 3 2 1 1 2 3 1 3 ...
## $ q12f : Factor w/ 5 levels "viel hoeher als heute",..: 2 4 3 2 3 3 3 4 2 3 ...
## $ q12g : Factor w/ 5 levels "viel hoeher als heute",..: 1 2 3 1 2 2 2 2 1 2 ...
## $ q12h : Factor w/ 5 levels "viel hoeher als heute",..: 1 2 3 2 2 2 2 NA 4 2 ...
## $ q13 : Factor w/ 5 levels "sehr gut","gut",..: 2 2 2 1 2 2 2 3 4 2 ...
## $ q14 : Factor w/ 5 levels "wesentlich besser geworden",..: 4 2 4 2 4 3 2 3 5 3 ...
## $ q15 : Factor w/ 5 levels "sehr stark","stark",..: 3 2 5 2 3 5 3 3 3 2 ...
## $ q16 : Factor w/ 5 levels "wesentlich besser",..: 4 3 4 2 4 3 3 4 5 2 ...
## $ q17 : Factor w/ 2 levels "ja, habe gewaehlt",..: 1 1 1 1 NA 1 1 1 1 2 ...
## $ q18 : Factor w/ 3 levels "per Briefwahl",..: 3 2 3 3 NA 1 3 3 3 NA ...
## $ q19aa : Factor w/ 55 levels "CDU/CSU","CDU",..: 1 4 1 NA NA 4 4 5 NA NA ...
## $ q19ab : Factor w/ 55 levels "CDU/CSU","CDU",..: 1 4 1 NA NA 4 4 5 NA NA ...
## $ q19ba : Factor w/ 55 levels "CDU/CSU","CDU",..: 1 6 1 NA NA 6 4 5 NA NA ...
## $ q19bb : Factor w/ 55 levels "CDU/CSU","CDU",..: 1 6 1 NA NA 6 4 5 NA NA ...
## $ q20 : Factor w/ 2 levels "ja, ich haette gewaehlt",..: NA NA NA NA 1 NA NA NA NA NA ...
## $ q21aa : Factor w/ 55 levels "CDU/CSU","CDU",..: NA NA NA NA 1 NA NA NA NA NA ...
## $ q21ab : Factor w/ 55 levels "CDU/CSU","CDU",..: NA NA NA NA 1 NA NA NA NA NA ...
## $ q21ba : Factor w/ 55 levels "CDU/CSU","CDU",..: NA NA NA NA 1 NA NA NA NA NA ...
## $ q21bb : Factor w/ 55 levels "CDU/CSU","CDU",..: NA NA NA NA 1 NA NA NA NA NA ...
## $ q22 : Factor w/ 5 levels "stand schon seit langem fest",..: 2 2 3 NA NA 1 1 3 NA NA ...
## $ q23 : Factor w/ 2 levels "ja","nein": 1 1 1 1 NA 1 1 1 1 NA ...
## $ q24 : Factor w/ 2 levels "ja, habe gewaehlt",..: 2 1 1 1 NA 1 1 1 1 NA ...
## $ q25aa : Factor w/ 55 levels "CDU/CSU","CDU",..: NA 4 4 NA NA 4 4 5 4 NA ...
## $ q25ab : Factor w/ 55 levels "CDU/CSU","CDU",..: NA 4 4 NA NA 4 4 5 4 NA ...
## $ q25ba : Factor w/ 55 levels "CDU/CSU","CDU",..: NA 4 1 NA NA 6 4 5 4 NA ...
## $ q25bb : Factor w/ 55 levels "CDU/CSU","CDU",..: NA 4 1 NA NA 6 4 5 4 NA ...
## $ q26 : Factor w/ 5 levels "1 Es macht keinen Unterschied, wer an der Regierung ist.",..: 3 2 3 5 4 5 5 4 3 4 ...
## $ q27 : Factor w/ 5 levels "1 Es macht keinen Unterschied, was man waehlt.",..: 1 5 5 5 5 5 5 4 3 5 ...
## $ q28a : Factor w/ 11 levels "-5 halte ueberhaupt nichts von dieser Partei",..: 10 8 9 11 11 4 5 3 7 10 ...
## $ q28b : Factor w/ 11 levels "-5 halte ueberhaupt nichts von dieser Partei",..: 10 6 9 11 11 3 3 4 5 8 ...
## $ q28c : Factor w/ 11 levels "-5 halte ueberhaupt nichts von dieser Partei",..: 5 9 5 8 10 7 10 3 7 9 ...
## $ q28d : Factor w/ 11 levels "-5 halte ueberhaupt nichts von dieser Partei",..: 3 6 6 2 8 6 7 4 6 6 ...
## $ q28e : Factor w/ 11 levels "-5 halte ueberhaupt nichts von dieser Partei",..: 8 9 7 9 9 9 9 2 6 8 ...
## $ q28f : Factor w/ 11 levels "-5 halte ueberhaupt nichts von dieser Partei",..: 10 6 6 9 11 5 4 7 6 6 ...
## $ q28g : Factor w/ 11 levels "-5 halte ueberhaupt nichts von dieser Partei",..: 1 1 1 1 3 1 1 2 8 1 ...
## $ q29a : Factor w/ 11 levels "-5 halte ueberhaupt nichts von diesem Politiker",..: 9 8 10 10 11 4 5 3 3 9 ...
## $ q29b : Factor w/ 11 levels "-5 halte ueberhaupt nichts von diesem Politiker",..: 5 8 6 7 5 9 10 6 6 6 ...
## $ q29c : Factor w/ 11 levels "-5 halte ueberhaupt nichts von diesem Politiker",..: 5 7 7 4 8 5 8 7 5 NA ...
## $ q29d : Factor w/ 11 levels "-5 halte ueberhaupt nichts von diesem Politiker",..: 6 8 6 9 7 10 8 6 6 NA ...
## $ q29e : Factor w/ 11 levels "-5 halte ueberhaupt nichts von diesem Politiker",..: 9 NA 7 10 11 4 5 8 8 NA ...
## $ q29f : Factor w/ 11 levels "-5 halte ueberhaupt nichts von diesem Politiker",..: 8 1 5 4 2 1 1 1 6 NA ...
## $ q29g : Factor w/ 11 levels "-5 halte ueberhaupt nichts von diesem Politiker",..: 8 7 7 10 11 3 3 7 6 NA ...
## [list output truncated]
## - attr(*, "variable.labels")= Named chr [1:602] "Studiennummer" "GESIS Archiv Version" "Digital Object Identifier" "Erhebungsjahr" ...
## ..- attr(*, "names")= chr [1:602] "study" "version" "doi" "year" ...
## - attr(*, "codepage")= int 65001
gles
liegt als Dataframe vor und enthält 2112
Beobachtungen (Zeilen) und 602 Variablen (Spalten). Variablen sind
study
, version
, doi
, usw., wobei
das Dollarzeichen, wie bei Dataframes üblich, Variablen kennzeichnet.
Die ersten Variablen enthalten Informationen zur Durchführung des
Interviews. Die Bezeichnung der meisten ist recht technisch. Die
Variablen liegen als numerische und character-Vektoren sowie als
Faktoren vor. Die Objektklassen lassen sich in Dataframes zusammenführen
(s. Sitzung 2).
str(lijphart)
## 'data.frame': 36 obs. of 74 variables:
## $ Country : chr "ARG" "AUL" "AUT" "BAH" ...
## $ exe_part4510 : chr "-0.93" "-0.73" "0.43" "-1.50" ...
## $ exe_part8110 : chr "-1.01" "-0.65" "0.64" "-1.33" ...
## $ fed_unit4510 : chr "1.38" "1.63" "1.07" "-0.15" ...
## $ fed_unit8110 : chr "1.34" "1.58" "0.97" "-0.18" ...
## $ enpp4510 : chr "3.15" "2.22" "2.68" "1.69" ...
## $ enpp8110 : chr "3.15" "2.19" "3.23" "1.74" ...
## $ minwin_one_part4510 : chr "82.4" "80.7" "43.3" "100.0" ...
## $ minwin_one_part8110 : chr "82.4" "86.5" "47.4" "100.0" ...
## $ exe_dom4510 : chr "8.00" "9.10" "8.07" "9.44" ...
## $ exe_dom8110 : chr "8.00" "7.37" "5.90" "7.37" ...
## $ disprop4510 : chr "17.98" "9.44" "2.51" "16.48" ...
## $ disprop8110 : chr "17.98" "10.07" "2.02" "15.90" ...
## $ inter_gr_plural4510 : chr "2.70" "2.12" "0.38" "3.00" ...
## $ inter_gr_plural8110 : chr "2.70" "1.88" "0.38" "3.00" ...
## $ federal4510 : chr "4.5" "5.0" "4.5" "1.0" ...
## $ federal8110 : chr "4.5" "5.0" "4.5" "1.0" ...
## $ bicam4510 : chr "4.0" "4.0" "2.0" "2.0" ...
## $ bicam8110 : chr "4.0" "4.0" "2.0" "2.0" ...
## $ const_rigid4510 : chr "4.0" "4.0" "3.0" "3.0" ...
## $ const_rigid8110 : chr "4.0" "4.0" "3.0" "3.0" ...
## $ judic_rev4510 : chr "2.7" "3.0" "3.0" "2.0" ...
## $ judic_rev8110 : chr "2.7" "3.0" "3.0" "2.0" ...
## $ cen_bank_indep4594 : chr "0.39" "0.42" "0.55" "0.41" ...
## $ cen_bank_indep8194 : chr "0.39" "0.42" "0.53" "0.41" ...
## $ gov_effectiv9609 : chr "-0.08" "1.76" "1.80" "1.14" ...
## $ regu_quality9609 : chr "-0.42" "1.56" "1.51" "1.01" ...
## $ rule_of_law9609 : chr "-0.48" "1.72" "1.83" "1.16" ...
## $ ctrl_corrupt9609 : chr "-0.38" "1.91" "1.95" "1.28" ...
## $ corrupt_perc10 : chr "2.9" "8.7" "7.9" "" ...
## $ gdp_growth8109 : chr "" "1.880" "1.732" "" ...
## $ gdp_growth9109 : chr "3.210" "1.906" "1.613" "" ...
## $ consum_price8109 : chr "" "4.507" "2.623" "" ...
## $ gdp_deflat8109 : chr "" "4.607" "2.382" "" ...
## $ consum_price9109 : chr "15.849" "2.601" "2.145" "" ...
## $ gdp_deflat9109 : chr "13.745" "2.774" "1.692" "" ...
## $ unempl8109 : chr "" "7.331" "3.912" "" ...
## $ unempl9109 : chr "12.531" "7.155" "4.097" "" ...
## $ budget_balanc0008 : chr "" "1.2" "-1.8" "" ...
## $ budget_balanc0307 : chr "" "1.2" "-2.2" "-1.8" ...
## $ heri_free0910 : chr "51.7" "82.5" "71.9" "68.0" ...
## $ fras_free08 : chr "5.99" "7.90" "7.61" "7.21" ...
## $ pol_stab9609 : chr "-0.09" "1.01" "1.15" "0.89" ...
## $ confl_risk9004 : chr "10.23" "11.36" "11.79" "10.83" ...
## $ domes_conflict_weight8109: int NA 62 103 0 17 192 19 155 192 90 ...
## $ domes_conflict_weight9009: int 934 34 125 0 25 169 22 169 266 84 ...
## $ deaths_domes_terror8510 : int 5 0 0 2 2 0 3 2 1 0 ...
## $ voice_account9609 : chr "0.28" "1.42" "1.37" "1.09" ...
## $ eiu_democ0610 : chr "6.70" "9.13" "8.56" "" ...
## $ elec_plural0610 : chr "8.75" "10.00" "9.58" "" ...
## $ gov_funct0610 : chr "5.24" "8.93" "7.98" "" ...
## $ pol_part0610 : chr "5.56" "7.78" "7.78" "" ...
## $ pol_cult0610 : chr "5.84" "8.96" "8.34" "" ...
## $ civ_lib0610 : chr "8.14" "10.00" "9.12" "" ...
## $ women_parl_rep90 : chr "6.3" "6.1" "11.5" "4.1" ...
## $ women_parl_rep10 : chr "38.5" "24.7" "27.9" "12.2" ...
## $ women_cab_rep95 : chr "0.0" "5.9" "23.5" "27.3" ...
## $ women_cab_rep08 : int 23 24 38 8 28 23 28 16 29 37 ...
## $ gender_ineq08 : int 534 296 300 NA 448 236 663 289 501 209 ...
## $ X10_10_ratio00 : chr "31.8" "12.5" "6.9" "" ...
## $ X20_20_ratio00 : chr "16.3" "7.0" "4.4" "" ...
## $ gini_ineq00 : chr "51.3" "35.2" "29.1" "" ...
## $ turnout8110 : chr "78.43" "82.87" "78.23" "67.16" ...
## $ non_mand_turnout8110 : chr "" "" "78.23" "67.16" ...
## $ satis_democ9596 : int 35 NA 63 NA NA 54 NA NA NA 83 ...
## $ satis_democ0507 : chr "45.1" "51.5" "" "" ...
## $ soc_expend05 : chr "" "18.5" "24.9" "" ...
## $ mand_soc_expend05 : chr "" "19.5" "25.5" "" ...
## $ envir_perform10 : chr "61.0" "65.7" "78.1" "" ...
## $ incarceration10 : int 151 133 103 376 326 97 267 117 228 71 ...
## $ death_pen10 : int 0 0 0 2 2 0 2 0 0 0 ...
## $ foreign_aid90 : chr "" "0.34" "0.11" "" ...
## $ foreign_aid05 : chr "" "0.25" "0.52" "" ...
## $ aid_vers_def05 : int NA 14 58 NA NA 48 NA 31 NA 45 ...
Das Objekt lijphart
ist ebenfalls ein Dataframe und
beinhaltet 36 Beobachtungen und 74 Variablen (Country
,
exe_part4510
, exe_part8110
, usw.). Die
Variablen sind hauptsächlich character-Vektoren sowie integer-Vektoren
(ganze Zahlen). Mit View()
können wir die Datensätze als
Tabelle ansehen. Dabei ist zu beachten, dass man gerade bei größeren
Datensätzen nur langsam durch den Datensatz scrollen kann. Wenn wir
stattdessen nur einen Eindruck der Variablen und der ersten enthaltenen
Werte bekommen möchten, bieten sich die Funktionen head()
und tail()
an, die jeweils die ersten und letzten sechs
Zeilen des Datensatzes zeigen.
# head(gles)
# tail(gles)
head(lijphart)
Country | exe_part4510 | exe_part8110 | fed_unit4510 | fed_unit8110 | enpp4510 | enpp8110 | minwin_one_part4510 | minwin_one_part8110 | exe_dom4510 | exe_dom8110 | disprop4510 | disprop8110 | inter_gr_plural4510 | inter_gr_plural8110 | federal4510 | federal8110 | bicam4510 | bicam8110 | const_rigid4510 | const_rigid8110 | judic_rev4510 | judic_rev8110 | cen_bank_indep4594 | cen_bank_indep8194 | gov_effectiv9609 | regu_quality9609 | rule_of_law9609 | ctrl_corrupt9609 | corrupt_perc10 | gdp_growth8109 | gdp_growth9109 | consum_price8109 | gdp_deflat8109 | consum_price9109 | gdp_deflat9109 | unempl8109 | unempl9109 | budget_balanc0008 | budget_balanc0307 | heri_free0910 | fras_free08 | pol_stab9609 | confl_risk9004 | domes_conflict_weight8109 | domes_conflict_weight9009 | deaths_domes_terror8510 | voice_account9609 | eiu_democ0610 | elec_plural0610 | gov_funct0610 | pol_part0610 | pol_cult0610 | civ_lib0610 | women_parl_rep90 | women_parl_rep10 | women_cab_rep95 | women_cab_rep08 | gender_ineq08 | X10_10_ratio00 | X20_20_ratio00 | gini_ineq00 | turnout8110 | non_mand_turnout8110 | satis_democ9596 | satis_democ0507 | soc_expend05 | mand_soc_expend05 | envir_perform10 | incarceration10 | death_pen10 | foreign_aid90 | foreign_aid05 | aid_vers_def05 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ARG | -0.93 | -1.01 | 1.38 | 1.34 | 3.15 | 3.15 | 82.4 | 82.4 | 8.00 | 8.00 | 17.98 | 17.98 | 2.70 | 2.70 | 4.5 | 4.5 | 4.0 | 4.0 | 4.0 | 4.0 | 2.7 | 2.7 | 0.39 | 0.39 | -0.08 | -0.42 | -0.48 | -0.38 | 2.9 | 3.210 | 15.849 | 13.745 | 12.531 | 51.7 | 5.99 | -0.09 | 10.23 | NA | 934 | 5 | 0.28 | 6.70 | 8.75 | 5.24 | 5.56 | 5.84 | 8.14 | 6.3 | 38.5 | 0.0 | 23 | 534 | 31.8 | 16.3 | 51.3 | 78.43 | 35 | 45.1 | 61.0 | 151 | 0 | NA | |||||||||||
AUL | -0.73 | -0.65 | 1.63 | 1.58 | 2.22 | 2.19 | 80.7 | 86.5 | 9.10 | 7.37 | 9.44 | 10.07 | 2.12 | 1.88 | 5.0 | 5.0 | 4.0 | 4.0 | 4.0 | 4.0 | 3.0 | 3.0 | 0.42 | 0.42 | 1.76 | 1.56 | 1.72 | 1.91 | 8.7 | 1.880 | 1.906 | 4.507 | 4.607 | 2.601 | 2.774 | 7.331 | 7.155 | 1.2 | 1.2 | 82.5 | 7.90 | 1.01 | 11.36 | 62 | 34 | 0 | 1.42 | 9.13 | 10.00 | 8.93 | 7.78 | 8.96 | 10.00 | 6.1 | 24.7 | 5.9 | 24 | 296 | 12.5 | 7.0 | 35.2 | 82.87 | NA | 51.5 | 18.5 | 19.5 | 65.7 | 133 | 0 | 0.34 | 0.25 | 14 | |
AUT | 0.43 | 0.64 | 1.07 | 0.97 | 2.68 | 3.23 | 43.3 | 47.4 | 8.07 | 5.90 | 2.51 | 2.02 | 0.38 | 0.38 | 4.5 | 4.5 | 2.0 | 2.0 | 3.0 | 3.0 | 3.0 | 3.0 | 0.55 | 0.53 | 1.80 | 1.51 | 1.83 | 1.95 | 7.9 | 1.732 | 1.613 | 2.623 | 2.382 | 2.145 | 1.692 | 3.912 | 4.097 | -1.8 | -2.2 | 71.9 | 7.61 | 1.15 | 11.79 | 103 | 125 | 0 | 1.37 | 8.56 | 9.58 | 7.98 | 7.78 | 8.34 | 9.12 | 11.5 | 27.9 | 23.5 | 38 | 300 | 6.9 | 4.4 | 29.1 | 78.23 | 78.23 | 63 | 24.9 | 25.5 | 78.1 | 103 | 0 | 0.11 | 0.52 | 58 | |
BAH | -1.50 | -1.33 | -0.15 | -0.18 | 1.69 | 1.74 | 100.0 | 100.0 | 9.44 | 7.37 | 16.48 | 15.90 | 3.00 | 3.00 | 1.0 | 1.0 | 2.0 | 2.0 | 3.0 | 3.0 | 2.0 | 2.0 | 0.41 | 0.41 | 1.14 | 1.01 | 1.16 | 1.28 | -1.8 | 68.0 | 7.21 | 0.89 | 10.83 | 0 | 0 | 2 | 1.09 | 4.1 | 12.2 | 27.3 | 8 | NA | 67.16 | 67.16 | NA | 376 | 2 | NA | |||||||||||||||||||||||||
BAR | -1.28 | -1.20 | -0.49 | -0.53 | 1.68 | 1.62 | 100.0 | 100.0 | 8.87 | 7.37 | 17.27 | 18.72 | 2.20 | 2.00 | 1.0 | 1.0 | 2.0 | 2.0 | 2.0 | 2.0 | 2.0 | 2.0 | 0.38 | 0.38 | 1.36 | 0.98 | 1.12 | 1.32 | 7.8 | 68.5 | 6.35 | 1.05 | 17 | 25 | 2 | 1.21 | 3.7 | 10.0 | 27.3 | 28 | 448 | 71.35 | 71.35 | NA | 326 | 2 | NA | ||||||||||||||||||||||||||
BEL | 1.14 | 1.10 | 0.10 | 0.44 | 4.72 | 6.13 | 37.3 | 36.3 | 2.57 | 4.21 | 3.35 | 3.75 | 1.15 | 1.33 | 3.5 | 4.2 | 2.8 | 2.5 | 3.0 | 3.0 | 1.8 | 2.7 | 0.27 | 0.30 | 1.68 | 1.24 | 1.31 | 1.37 | 7.1 | 1.552 | 1.371 | 2.930 | 2.756 | 2.062 | 1.961 | 8.744 | 8.054 | -0.5 | -0.7 | 70.2 | 7.22 | 0.92 | 11.59 | 192 | 169 | 0 | 1.39 | 8.12 | 9.58 | 8.21 | 6.11 | 7.29 | 9.41 | 8.5 | 39.3 | 11.8 | 23 | 236 | 8.2 | 4.9 | 33.0 | 86.32 | 54 | 26.2 | 26.2 | 58.1 | 97 | 0 | 0.46 | 0.53 | 48 |
tail(lijphart)
Country | exe_part4510 | exe_part8110 | fed_unit4510 | fed_unit8110 | enpp4510 | enpp8110 | minwin_one_part4510 | minwin_one_part8110 | exe_dom4510 | exe_dom8110 | disprop4510 | disprop8110 | inter_gr_plural4510 | inter_gr_plural8110 | federal4510 | federal8110 | bicam4510 | bicam8110 | const_rigid4510 | const_rigid8110 | judic_rev4510 | judic_rev8110 | cen_bank_indep4594 | cen_bank_indep8194 | gov_effectiv9609 | regu_quality9609 | rule_of_law9609 | ctrl_corrupt9609 | corrupt_perc10 | gdp_growth8109 | gdp_growth9109 | consum_price8109 | gdp_deflat8109 | consum_price9109 | gdp_deflat9109 | unempl8109 | unempl9109 | budget_balanc0008 | budget_balanc0307 | heri_free0910 | fras_free08 | pol_stab9609 | confl_risk9004 | domes_conflict_weight8109 | domes_conflict_weight9009 | deaths_domes_terror8510 | voice_account9609 | eiu_democ0610 | elec_plural0610 | gov_funct0610 | pol_part0610 | pol_cult0610 | civ_lib0610 | women_parl_rep90 | women_parl_rep10 | women_cab_rep95 | women_cab_rep08 | gender_ineq08 | X10_10_ratio00 | X20_20_ratio00 | gini_ineq00 | turnout8110 | non_mand_turnout8110 | satis_democ9596 | satis_democ0507 | soc_expend05 | mand_soc_expend05 | envir_perform10 | incarceration10 | death_pen10 | foreign_aid90 | foreign_aid05 | aid_vers_def05 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
31 | SWE | 0.79 | 0.87 | -1.03 | -1.09 | 3.47 | 3.82 | 48.1 | 42.6 | 5.61 | 4.92 | 2.04 | 1.95 | 0.35 | 0.42 | 2.0 | 2.0 | 1.7 | 1.0 | 1.5 | 2.0 | 1.0 | 1.0 | 0.29 | 0.29 | 1.96 | 1.50 | 1.81 | 2.17 | 9.2 | 1.640 | 1.493 | 3.915 | 4.061 | 1.968 | 2.182 | 5.618 | 7.145 | 71.9 | 7.28 | 1.25 | 11.38 | 58 | 50 | 0 | 1.55 | 9.75 | 9.86 | 9.88 | 9.63 | 9.38 | 10.00 | 38.4 | 45.0 | 47.6 | 48 | 212 | 6.2 | 4.0 | 25.0 | 82.38 | 82.38 | 55 | 61.5 | 27.3 | 27.5 | 86.0 | 78 | 0 | 0.91 | 0.94 | 63 | ||
32 | SWI | 1.72 | 1.67 | 1.46 | 1.59 | 5.20 | 5.50 | 4.0 | 1.7 | 1.00 | 1.00 | 2.55 | 3.08 | 0.88 | 0.88 | 5.0 | 5.0 | 4.0 | 4.0 | 4.0 | 4.0 | 1.0 | 1.0 | 0.61 | 0.68 | 1.97 | 1.56 | 1.84 | 2.06 | 8.7 | 910 | 545 | 2.125 | 2.059 | 1.450 | 1.274 | 3.465 | 0.4 | -0.1 | 81.9 | 8.08 | 1.25 | 12.00 | 34 | 25 | 0 | 1.52 | 9.09 | 9.58 | 9.29 | 7.78 | 9.17 | 9.61 | 14.0 | 29.0 | 14.3 | 43 | 228 | 9.0 | 5.5 | 33.7 | 38.29 | 38.29 | NA | 61.3 | 89.1 | 79 | 0 | 0.32 | 0.44 | 44 | |||
33 | TRI | -1.01 | -0.79 | -0.24 | -0.34 | 1.87 | 1.88 | 94.3 | 90.7 | 6.95 | 4.21 | 11.33 | 11.67 | 3.00 | 3.00 | 1.3 | 1.5 | 2.0 | 2.0 | 3.0 | 3.0 | 2.0 | 2.0 | 0.35 | 0.30 | 0.30 | 0.68 | 0.09 | 0.11 | 3.6 | 1.615 | 4.209 | 7.752 | 5.752 | 6.001 | 5.523 | 13.934 | 12.308 | 2.5 | 66.5 | 7.10 | 0.04 | 8.82 | 136 | 184 | 23 | 0.61 | 7.18 | 9.44 | 6.91 | 6.11 | 5.42 | 8.04 | 16.7 | 28.6 | 15.8 | 36 | 473 | 12.9 | 7.6 | 38.9 | 71.00 | 71.00 | NA | 32.1 | 54.2 | 276 | 2 | NA | |||||
34 | UK | -1.09 | -1.48 | -1.06 | -1.12 | 2.16 | 2.27 | 97.3 | 99.8 | 8.12 | 9.83 | 11.70 | 16.00 | 3.02 | 3.08 | 1.2 | 1.4 | 2.5 | 2.5 | 1.0 | 1.0 | 1.0 | 1.0 | 0.31 | 0.28 | 1.76 | 1.69 | 1.65 | 1.90 | 7.6 | 1.960 | 1.642 | 4.119 | 4.032 | 2.821 | 2.743 | 6.661 | -2.1 | -3.0 | 74.5 | 7.81 | 0.62 | 10.00 | 1998 | 1303 | 55 | 1.33 | 8.13 | 9.58 | 8.33 | 5.37 | 8.34 | 9.02 | 6.3 | 22.0 | 8.7 | 23 | 355 | 13.8 | 7.2 | 36.0 | 67.92 | 67.92 | 46 | 33.3 | 22.9 | 23.7 | 74.2 | 152 | 0 | 0.27 | 0.47 | 17 | |
35 | URU | 0.39 | 0.31 | -0.79 | -0.84 | 4.40 | 4.40 | 80.3 | 80.3 | 4.00 | 4.00 | 6.05 | 6.05 | 1.70 | 1.70 | 1.0 | 1.0 | 3.0 | 3.0 | 1.0 | 1.0 | 2.5 | 2.5 | 0.19 | 0.19 | 0.51 | 0.46 | 0.57 | 0.94 | 6.9 | 2.732 | 24.313 | 23.020 | 11.198 | -2.5 | -2.1 | 70.0 | 6.93 | 0.77 | 8.80 | NA | 325 | 0 | 0.96 | 8.05 | 10.00 | 8.33 | 4.81 | 7.29 | 9.81 | 6.1 | 15.2 | 5.9 | 29 | 508 | 17.9 | 10.2 | 44.9 | 94.51 | 52 | 60.9 | 59.1 | 261 | 0 | NA | |||||||||
36 | US | -0.67 | -0.63 | 2.25 | 2.18 | 2.39 | 2.37 | 80.4 | 78.9 | 4.00 | 4.00 | 14.28 | 13.35 | 3.02 | 2.88 | 5.0 | 5.0 | 4.0 | 4.0 | 4.0 | 4.0 | 4.0 | 4.0 | 0.56 | 0.56 | 1.64 | 1.51 | 1.54 | 1.53 | 7.1 | 1.731 | 1.439 | 3.370 | 2.939 | 2.649 | 2.249 | 6.159 | 5.653 | -2.8 | 77.8 | 7.96 | 0.50 | 10.99 | 269 | 288 | 28 | 1.25 | 8.21 | 8.89 | 7.86 | 7.22 | 8.54 | 8.53 | 6.6 | 16.9 | 20.0 | 44 | 400 | 15.9 | 8.4 | 40.8 | 51.30 | 51.30 | NA | 35.5 | 18.4 | 18.8 | 63.5 | 743 | 2 | 0.21 | 0.22 | 5 |
gles
Anhand der Wahlforschungsdaten der GLES wollen wir im weiteren Verlauf des Kurses die Wahlentscheidung der Befragten mittels sozio-demografischer Größen und politischer Einstellungen erklären. Dabei interessiert uns insbesondere, wie die Wahlentscheidung zugunsten der AfD erklärt werden kann. Außerdem werden wir versuchen, die Selbsteinstufung der Befragten entlang einer Links-Rechts-Achse zu erklären. Wir benötigen die folgenden Variablen: das Alter der Befragten, deren Geschlecht, Einkommen, Wohnort, subjektive Links-Rechts-Einstufung und die Angabe, ob sie bei der Bundestagswahl 2017 ihre Zweitstimme für die AfD abgegeben haben. Im Folgenden werden wir uns die Variablen jeweils einmal in der Form anschauen, in der sie im Datensatz vorkommen. Danach werden wir sie zu unseren Zwecken verändern, wobei wir lediglich den Datensatz im Arbeitsspeicher verändern und nicht den Datensatz auf der Festplatte. Deshalb ist es hilfreich, alle vorgenommenen Operationen als Skripte zu schreiben, weil man so alle Arbeitsschritte sofort wieder vornehmen kann und immer nachvollziehen kann, woran bereits gearbeitet wurde.
Wir beginnen mit den unabhängigen Variablen. Das Alter der Befragten
könnte einen Einfluss auf die Wahlentscheidung und die Position entlang
einer gedachten Links-Rechts-Achse haben. Tatsächlich wurden die
Befragten nicht nach ihrem Alter gefragt, sondern nach ihrem
Geburtsdatum (s. Fragebogen, S. 11). Das Geburtsjahr liegt in der
Variable q2c
als Faktor vor.
class(gles$q2c)
## [1] "factor"
table(gles$q2c)
1922 | 1923 | 1924 | 1925 | 1927 | 1928 | 1929 | 1930 | 1931 | 1932 | 1933 | 1934 | 1935 | 1936 | 1937 | 1938 | 1939 | 1940 | 1941 | 1942 | 1943 | 1944 | 1945 | 1946 | 1947 | 1948 | 1949 | 1950 | 1951 | 1952 | 1953 | 1954 | 1955 | 1956 | 1957 | 1958 | 1959 | 1960 | 1961 | 1962 | 1963 | 1964 | 1965 | 1966 | 1967 | 1968 | 1969 | 1970 | 1971 | 1972 | 1973 | 1974 | 1975 | 1976 | 1977 | 1978 | 1979 | 1980 | 1981 | 1982 | 1983 | 1984 | 1985 | 1986 | 1987 | 1988 | 1989 | 1990 | 1991 | 1992 | 1993 | 1994 | 1995 | 1996 | 1997 | 1998 | 1999 | 2000 | 2001 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 2 | 1 | 1 | 2 | 4 | 8 | 4 | 8 | 10 | 7 | 13 | 20 | 22 | 22 | 25 | 29 | 35 | 36 | 19 | 24 | 26 | 17 | 23 | 24 | 31 | 36 | 31 | 24 | 50 | 35 | 36 | 32 | 30 | 22 | 38 | 45 | 44 | 32 | 48 | 41 | 41 | 47 | 34 | 36 | 41 | 37 | 30 | 38 | 31 | 32 | 31 | 29 | 21 | 27 | 35 | 22 | 33 | 24 | 23 | 26 | 32 | 27 | 23 | 33 | 41 | 37 | 22 | 27 | 25 | 19 | 18 | 29 | 25 | 27 | 28 | 32 | 48 | 22 |
Wir berechnen das Alter, indem wir das Geburtsjahr der Befragten von dem Jahr der Befragung subtrahieren. Dazu müssen wir die Variable zunächst in einen numerischen Vektor umwandeln. Wenn man jedoch Faktoren direkt in numerische Vektoren umwandelt, werden die zugrunde liegenden Levels der Faktoren herangezogen und als numerische Werte interpretiert.
head(as.numeric(gles$q2c))
## [1] 38 42 31 17 79 37
Deshalb müssen wir den Faktor q2c zunächst zu einem character-Vektor
und danach zu einem numerischen Vektor umwandeln. Dazu verwenden wir die
Umwandlungsfunktion as.numeric(as.character())
. Die
numerischen Geburtsjahre speichern wir als q2c_num
.
Schließlich führen wir die Subtraktion durch. Das so berechnete Alter
speichern wir in einer neuen Variable alter
, die wir an den
Datensatz anfügen.
q2c_num <- as.numeric(as.character(gles$q2c))
gles$alter <- 2017 - q2c_num # Warnung "NA's introduced by coercion" weil eine Person mit "keine Angabe" antwortete und das numerisch nicht interpretierbar ist
class(gles$alter)
## [1] "numeric"
table(gles$alter)
16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 92 | 93 | 94 | 95 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
22 | 48 | 32 | 28 | 27 | 25 | 29 | 18 | 19 | 25 | 27 | 22 | 37 | 41 | 33 | 23 | 27 | 32 | 26 | 23 | 24 | 33 | 22 | 35 | 27 | 21 | 29 | 31 | 32 | 31 | 38 | 30 | 37 | 41 | 36 | 34 | 47 | 41 | 41 | 48 | 32 | 44 | 45 | 38 | 22 | 30 | 32 | 36 | 35 | 50 | 24 | 31 | 36 | 31 | 24 | 23 | 17 | 26 | 24 | 19 | 36 | 35 | 29 | 25 | 22 | 22 | 20 | 13 | 7 | 10 | 8 | 4 | 8 | 4 | 2 | 1 | 1 | 2 | 1 |
summary(gles$alter)
Min. | 1st Qu. | Median | Mean | 3rd Qu. | Max. | NA’s |
---|---|---|---|---|---|---|
16 | 34 | 51 | 50.15396 | 65 | 95 | 1 |
View(gles$alter)
Wie summary()
zeigt, sind Personen zwischen 16 und 95
Jahren befragt worden. Der Median liegt bei 51 Jahren und das
arithmetische Mittel bei 50,15 Jahren. Bei einer Person liegt keine
Information über das Alter vor (NA
), diese Person hat die
Angabe verweigert. table()
zeigt, wie viele Personen mit
einem bestimmten Alter im Datensatz enthalten sind, also z.B. 22
16-Jährige, 48 17-Jährige, usw. Mit View()
können wir die
Variable inspizieren.
Womöglich hat das Geschlecht der Befragten einen Einfluss. Die Variable Geschlecht ist direkt erfasst worden und liegt als Faktor vor. Wir vergeben lediglich einen aussagekräftigen Variablennamen.
names(gles)[names(gles) == "q1"] <- "geschlecht"
table(gles$geschlecht)
maennlich | weiblich |
---|---|
1097 | 1015 |
Wie die Funktion table()
zeigt, sind Männer in unserem
Sample leicht überrepräsentiert.
Auch die wirtschaftliche Situation der Befragten könnte eine Rolle spielen. Das Haushaltseinkommen der Befragten ist in Kategorien abgefragt worden (s. Fragebogen, S. 206).
table(gles$q192)
unter 500 Euro | 500 bis unter 750 Euro | 750 bis unter 1000 Euro | 1000 bis unter 1250 Euro | 1250 bis unter 1500 Euro | 1500 bis unter 2000 Euro | 2000 bis unter 2500 Euro | 2500 bis unter 3000 Euro | 3000 bis unter 4000 Euro | 4000 bis unter 5000 Euro | 5000 bis unter 7500 Euro | 7500 bis unter 10000 Euro | 10000 Euro und mehr |
---|---|---|---|---|---|---|---|---|---|---|---|---|
19 | 33 | 62 | 85 | 111 | 231 | 262 | 250 | 310 | 189 | 161 | 38 | 18 |
Da die Kategorien sehr kleinteilig sind, wollen wir sie neu einteilen. Die sieben neuen Kategorien lauten wie folgt: weniger als 1000 Euro, 1000 bis 1999 Euro, 2000 bis 2999 Euro, 3000 bis 3999 Euro, 4000 bis 4999 Euro, 5000 bis 7499 Euro und 7500 Euro und mehr.
Zur Indizierung verwenden wir wieder eckige Klammern, diesmal
allerdings in Kombination mit dem logischen Oder |. Der nachfolgende
Code sagt folgendes aus: Wenn q192
die Ausprägung “unter
500 Euro” oder “500 bis unter 750 Euro” oder “750 bis unter 1000 Euro”
aufweist, dann ordne der Variable einkommen_cat
“weniger
als 1000 Euro” zu. Für die weiteren Kategorien geschieht dies analog.
Machen Sie sich bewusst, dass der Inhalt der eckigen Klammern jeweils
einen logischen Vektor mit den Werten TRUE
und
FALSE
ausgibt. Wenn TRUE
, dann wird
einkommen_cat
der Wert rechts von <-
zugewiesen.
Führen Sie zu diese Codezeile zunächst einzeln aus und lassen Sie
sich View(gles$einkommen_cat)
ausgeben:
gles$einkommen_cat[gles$q192 == "unter 500 Euro" |
gles$q192 == "500 bis unter 750 Euro" |
gles$q192 == "750 bis unter 1000 Euro"] <- "weniger als 1000"
View(gles$einkommen_cat)
Sie sehen, dass einkommen_cat für die meisten Beobachtungen einen
fehlenden Wert, NA
(“not available”), enthält. Das sind
Personen, deren Haushaltseinkommen 1000 Euro und mehr beträgt. Wenn Sie
nun schrittweise die folgenden Codezeilen ausführen, verschwinden die
NA
s nach und nach.
gles$einkommen_cat[gles$q192 == "1000 bis unter 1250 Euro" |
gles$q192 == "1250 bis unter 1500 Euro" |
gles$q192 == "1500 bis unter 2000 Euro"] <- "1000 bis 1999"
gles$einkommen_cat[gles$q192 == "2000 bis unter 2500 Euro" |
gles$q192 == "2500 bis unter 3000 Euro"] <- "2000 bis 2999"
gles$einkommen_cat[gles$q192 == "3000 bis unter 4000 Euro"] <- "3000 bis 3999"
gles$einkommen_cat[gles$q192 == "4000 bis unter 5000 Euro"] <- "4000 bis 4999"
gles$einkommen_cat[gles$q192 == "5000 bis unter 7500 Euro"] <- "5000 bis 7499"
gles$einkommen_cat[gles$q192 == "7500 bis unter 10000 Euro" |
gles$q192 == "10000 Euro und mehr"] <- "7500 und mehr"
Wenn Sie alle Zeilen ausgeführt haben, werden immer noch einige
NA
s übrigbleiben. Das sind die Personen, die die Aussage
verweigert haben, die ihr Haushaltseinkommen nicht kannten, oder deren
Haushaltseinkommen aus anderen Gründen nicht vorlag. Die Variable sieht
folgendermaßen aus:
table(gles$einkommen_cat)
1000 bis 1999 | 2000 bis 2999 | 3000 bis 3999 | 4000 bis 4999 | 5000 bis 7499 | 7500 und mehr | weniger als 1000 |
---|---|---|---|---|---|---|
427 | 512 | 310 | 189 | 161 | 56 | 114 |
Dabei fällt auf, dass die niedrigste Kategorie “weniger als 1000” im
Output als letzte erscheint. Um die richtige Ordnung herzustellen,
wandeln wir einkommen_cat
in einen Faktor um und ordnen die
Levels händisch.
gles$einkommen_cat <- factor(gles$einkommen_cat,
levels = c("weniger als 1000",
"1000 bis 1999",
"2000 bis 2999",
"3000 bis 3999",
"4000 bis 4999",
"5000 bis 7499",
"7500 und mehr"))
table(gles$einkommen_cat)
weniger als 1000 | 1000 bis 1999 | 2000 bis 2999 | 3000 bis 3999 | 4000 bis 4999 | 5000 bis 7499 | 7500 und mehr |
---|---|---|---|---|---|---|
114 | 427 | 512 | 310 | 189 | 161 | 56 |
Wir können das Haushaltseinkommen auch als kontinuierliche Variable behandeln, da es in der vorliegenden Kodierweise sieben Ausprägungen aufweist. Dazu verändern wir die eben erstellte Variable wie folgt:
gles$einkommen_num[gles$einkommen_cat == "weniger als 1000"] <- 1
gles$einkommen_num[gles$einkommen_cat == "1000 bis 1999"] <- 2
gles$einkommen_num[gles$einkommen_cat == "2000 bis 2999"] <- 3
gles$einkommen_num[gles$einkommen_cat == "3000 bis 3999"] <- 4
gles$einkommen_num[gles$einkommen_cat == "4000 bis 4999"] <- 5
gles$einkommen_num[gles$einkommen_cat == "5000 bis 7499"] <- 6
gles$einkommen_num[gles$einkommen_cat == "7500 und mehr"] <- 7
table(gles$einkommen_num)
1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|
114 | 427 | 512 | 310 | 189 | 161 | 56 |
Wie Sie sehen, entsprechen sich die Kategorien von
einkommen_cat
und einkommen_num
in Bezug auf
die Fallzahl pro Kategorie.
Außerdem könnte der Wohnort der Befragten einen Einfluss auf die politische Position oder die Wahlentscheidung haben. In diesem Fall sind die vorliegenden Kategorien ausreichend. Allerdings sind die Labels recht unhandlich, weshalb wir sie umbenennen.
table(gles$q197)
laendliche Gegend oder Dorf | kleine oder mittelgrosse Stadt | Vorstadt/ Vorort einer Grossstadt | Grossstadt |
---|---|---|---|
766 | 762 | 147 | 437 |
gles$wohnort[gles$q197 == "Grossstadt"] <- "Großstadt"
gles$wohnort[gles$q197 == "kleine oder mittelgrosse Stadt"] <- "Kleinstadt"
gles$wohnort[gles$q197 == "laendliche Gegend oder Dorf"] <- "Land"
gles$wohnort[gles$q197 == "Vorstadt/ Vorort einer Grossstadt"] <- "Vorstadt"
table(gles$wohnort)
Großstadt | Kleinstadt | Land | Vorstadt |
---|---|---|---|
437 | 762 | 766 | 147 |
Da lediglich die Kategorienamen und nicht die Datenstruktur angepasst wurden, hat sich am Zuschnitt der Kategorien nichts geändert.
Schließlich kommen wir zu den abhängigen Variablen unserer Analysen.
Bei der Links-Rechts-Selbsteinstufung wurden die Befragten aufgefordert,
ihre Position anhand einer 11-stufigen Links-Rechts-Skala einzuschätzen.
Wir schauen uns mit table()
zunächst wieder an, wie sich
die Befragten einordnen.
table(gles$q32)
1 links | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 rechts |
---|---|---|---|---|---|---|---|---|---|---|
53 | 105 | 263 | 249 | 354 | 552 | 184 | 118 | 50 | 13 | 23 |
Auch in diesem Fall belassen wir die Kategorisierung zunächst in ihrer Ursprungsform, wandeln die Variable jedoch in einen numerischen Vektor um und kodieren die als Strings enthaltenden Ausprägungen zu numerisch interpretierbaren Zahlen.
gles$LiRe <- as.character(gles$q32)
gles$LiRe[gles$LiRe == "1 links"] <- "1"
gles$LiRe[gles$LiRe == "11 rechts"] <- "11"
gles$LiRe <- as.numeric(gles$LiRe)
Auch hier muss der Faktor q32
zunächst in einen
character-Vektor umgewandelt werden (dabei wird er als neues Objekt LiRe
gespeichert), damit man ihn sinnvoll umkodieren und schließlich in einen
numerischen Vektor umwandeln kann. Die Links-Rechts-Selbsteinstufung
wollen wir des Weiteren etwas aggregieren, sodass mehrere Kategorien
zusammengefasst werden. Die Kategorien eins und zwei sollen in der neuen
Kategorie “links”, die Kategorien drei und vier in der Kategorie
“moderat links”, die Kategorien fünf, sechs und sieben in der Kategorie
“mittig”, die Kategorien acht und neun in der Kategorie “moderat rechts”
und die Kategorien 10 und 11 in der Kategorie “rechts” zusammengefasst
werden. Wir erstellen die aggregierte Variable ausgehend von der eben
gebildeten Variable LiRe und verwenden die Vergleichsoperatoren
>=
(größer-gleich) und <=
(kleiner-gleich).
gles$LiRe_cat[gles$LiRe >= 1 &
gles$LiRe <= 2] <- "links"
gles$LiRe_cat[gles$LiRe >= 3 &
gles$LiRe <= 4] <- "moderat links"
gles$LiRe_cat[gles$LiRe >= 5 &
gles$LiRe <= 7] <- "mittig"
gles$LiRe_cat[gles$LiRe >= 8 &
gles$LiRe <= 9] <- "moderat rechts"
gles$LiRe_cat[gles$LiRe >= 10 &
gles$LiRe <= 11] <- "rechts"
table(gles$LiRe_cat)
links | mittig | moderat links | moderat rechts | rechts |
---|---|---|---|---|
158 | 1090 | 512 | 168 | 36 |
Durch die Aggregierung hat die neue Variable weniger Kategorien, jedoch mehr Fälle pro Kategorie. Allerdings sind die Kategorien wie beim kategorialen Haushaltseinkommen durcheinandergeraten. Wir stellen die richtige Ordnung her, indem wir sie zu einem Faktor umwandeln und die Levels händisch ordnen.
gles$LiRe_cat <- factor(gles$LiRe_cat,
levels = c("links",
"moderat links",
"mittig",
"moderat rechts",
"rechts"))
table(gles$LiRe_cat)
links | moderat links | mittig | moderat rechts | rechts |
---|---|---|---|---|
158 | 512 | 1090 | 168 | 36 |
Mit LiRe und LiRe_cat stehen uns nun zwei abhängige Variablen zur Verfügung, anhand derer wir die Links-Rechts-Selbsteinstufung der Befragten messen können.
Schließlich benötigen wir eine Variable, die eine Aussage darüber
trifft, ob eine befragte Person die AfD gewählt hat. Bei solchen
Variablen, die eine Aussage darüber treffen, ob etwas zutrifft oder
nicht, sprechen wir von dichotomen Variablen. Dichotome Variablen
enthalten den Wert 1, wenn etwas zutrifft und den Wert 0, wenn etwas
nicht zutrifft. Die dichotome abhängige Variable zur AfD-Wahl bilden wir
aus der Variable q19ba
, welche die berichtete
Wahlentscheidung der Befragten enthält.
table(gles$q19ba)
CDU/CSU | CDU | CSU | SPD | FDP | GRUENE | DIE LINKE | BP | BüSo | DDP | Die GRAUEN | Die PARTEI | DIE VIOLETTEN | FAMILIE | Freie Waehler | GRAUE | Grundeinkommen - Volksentscheide | KPD | MLPD | NPD | NSDAP | oedp | PBC | PIRATEN | Pro DM | RENTNER | REP | RRP | SED | Tierschutzpartei | UDP | Volksabstimmung | ZENTRUM | UBP | LDPD | DBD | DNVP | GB/BHE | NDPD | PARTEI DER VERNUNFT | Bergpartei | AfD | DIE RECHTE | AD-Demokraten NRW | BGE | V-Partei3 | MG | DM | DiB | Sonstige | andere Partei | Einzelkandidat | keine Partei | alle Parteien | mit mehreren Parteien |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
504 | 0 | 0 | 338 | 200 | 225 | 188 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 162 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 73 | 0 | 0 | 0 | 0 |
View(gles$q19ba)
Wie zu erkennen ist, sind viele Kategorien nicht besetzt. Uns
interessiert nun lediglich, ob eine Person die AfD gewählt hat oder
nicht. Entsprechend wird in der neuen Variable AfD.Wahl Personen, welche
die AfD gewählt haben, eine 1 zugewiesen, während Personen, die eine
andere Partei gewählt haben, eine 0 zugewiesen wird. Wir verwenden
==
(gleich) und !=
(ungleich).
gles$AfD.Wahl[gles$q19ba == "AfD"] <- 1
gles$AfD.Wahl[gles$q19ba != "AfD"] <- 0
Die neue Variable beinhaltet jetzt ausschließlich Einsen und Nullen.
Wenn in q19ba
keine Information über die Wahlentscheidung
vorliegt (NA
), erhält auch die neue gebildete Variable ein
NA
.
table(gles$AfD.Wahl)
0 | 1 |
---|---|
1528 | 162 |
View(gles$AfD.Wahl)
Die Variablen des Datensatzes zu “Patterns of Democracy” werden im
weiteren Verlauf des Kurses in der bereits vorliegenden Form verwendet.
Allerdings liegen sie als character-Vektoren vor und müssen zu
numerischen Vektoren umgewandelt werden. Das sei hier beispielhaft für
die Variable enpp4510
dargestellt, welche die Effective
Number of Parliamentary Parties in den Jahren 1945 bis 2010 für alle
Länder enthält.
class(lijphart$enpp4510)
## [1] "character"
table(lijphart$enpp4510)
1.38 | 1.67 | 1.68 | 1.69 | 1.87 | 1.99 | 2.16 | 2.22 | 2.27 | 2.28 | 2.39 | 2.52 | 2.66 | 2.67 | 2.68 | 2.85 | 2.89 | 3.09 | 3.13 | 3.15 | 3.26 | 3.47 | 3.48 | 3.62 | 3.64 | 3.72 | 4.40 | 4.57 | 4.72 | 4.80 | 4.84 | 4.87 | 5.04 | 5.18 | 5.20 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
summary(lijphart$enpp4510)
Length | Class | Mode |
---|---|---|
36 | character | character |
Wie der Output der Funktionen table()
und
summary()
zeigen, ist die Variable in dieser Form nicht
sinnvoll zu interpretieren. Wir wandeln sie entsprechend um:
lijphart$enpp4510 <- as.numeric(lijphart$enpp4510)
summary(lijphart$enpp4510)
Min. | 1st Qu. | Median | Mean | 3rd Qu. | Max. |
---|---|---|---|---|---|
1.38 | 2.2775 | 2.99 | 3.191667 | 3.89 | 5.2 |
Anders als beim GLES überschreiben wir hier die Ursprungsvariable und bilden also keine neue Variable. Das hat damit zu tun, dass die Variable eigentlich numerisch sein müsste, wir sie also “reparieren”, statt sie für unsere Zwecke anzupassen. So gehen wir mit allen Variablen vor, die wir im Kurs verwenden werden. Für den Gallagher-Index zur Messung der Disproportionalität von Wahlsystemen:
lijphart$disprop4510 <- as.numeric(lijphart$disprop4510)
summary(lijphart$disprop4510)
Min. | 1st Qu. | Median | Mean | 3rd Qu. | Max. |
---|---|---|---|---|---|
1.21 | 3.2525 | 7.14 | 8.546111 | 14.305 | 21.97 |
Für den Bikameralismus-Index:
lijphart$bicam4510 <- as.numeric(lijphart$bicam4510)
summary(lijphart$bicam4510)
Min. | 1st Qu. | Median | Mean | 3rd Qu. | Max. |
---|---|---|---|---|---|
1 | 1.075 | 2 | 2.213889 | 3 | 4 |
Für den Anteil von Minimal-Winning-Koalition mit einer Partei, der zur Messung des Kabinettstyps herangezogen wird:
lijphart$minwin_one_part4510 <- as.numeric(lijphart$minwin_one_part4510)
summary(lijphart$minwin_one_part4510)
Min. | 1st Qu. | Median | Mean | 3rd Qu. | Max. |
---|---|---|---|---|---|
4 | 37.675 | 55.05 | 60.32222 | 86.6 | 100 |
Sowie für die Kabinettsdauer, mithilfe derer die Exekutivdominanz operationalisiert wird:
lijphart$exe_dom4510 <- as.numeric(lijphart$exe_dom4510)
summary(lijphart$exe_dom4510)
Min. | 1st Qu. | Median | Mean | 3rd Qu. | Max. |
---|---|---|---|---|---|
1 | 3.2225 | 4.305 | 5.348056 | 8.0775 | 9.9 |
NA
s)Beim Umkodieren der Variable, die das Haushaltseinkommen der
Befragten misst, sind uns bereits Fälle begegnet, für die kein Wert
vorlag. Es gibt viele Gründe, warum Daten fehlen können, so z.B.
technische Fehler, Befragungsteilnehmende, welche die Antwort auf
bestimmte Fragen verweigern, usw. Für R
stellen fehlende
Werte ein Problem dar, weil dadurch einige Funktionen nicht ausgeführt
werden können oder fehlerhafte Werte ausgeben. In seltenen Fällen kann
es auch sinnvoll sein, fehlende Werte durch Verfahren wie Imputationen
zu schätzen. Für unsere Zwecke genügt es aber, NA
s zu
löschen. Der einfachste Weg besteht darin, einen Subset des bestehenden
Datensatzes zu erstellen, in dem alle NAs entfernt werden. Das
definieren wir über die Funktion na.omit()
. In unserem
Beispiel mit dem Datensatz von gles würden kaum Fälle dadurch verloren
gehen.
gles_clean <- na.omit(gles)
In der Forschungspraxis sind fehlende Werte nicht zwingend mit
NA
gekennzeichnet, sondern teilweise auch mit 99 oder -99
zu. Diese Werte erkennt R
aber als zulässig an und sie
werden fälschlicherweise für die Analyse verwendet. Um dies zu
verhindern, müssen wir die entsprechenden Werte zu NA
s
transformieren. Für die Variable Einkommen beispielhaft:
gles$einkommen_cat [gles$einkommen_cat == 99] <- NA
gles$einkommen_cat [gles$einkommen_cat == -99] <- NA
Für die inhaltliche Interpretation ist es wichtig, zu bedenken, dass hinter fehlenden Antworten, insbesondere bei bestimmten Fragen, oft relevante Gründe liegen könnten, die bei der Forschung berücksichtigt werden sollten.
einkommen_cat1
, die vier Kategorien hat: “weniger als
2000”, “2000 bis unter 4000”, “4000 bis unter 7500”, “7500 und mehr”.
Nutzen Sie die Vergleichsoperatoren >
,
<
, >=
, <=
sowie den
logischen Operator &
.alter
eine neue
Variable alter65
, bei der Werte über 65 als NA
kodiert werden.GLES (2019). Nachwahl-Querschnitt (GLES 2017). GESIS Datenarchiv, Köln. ZA6801 Datenfile Version 4.0.1, https://doi.org/10.4232/1.13235.
Lijphart, Arend (2012): Patterns of Democracy. Government Forms and Performance in Thirty-Six Countries. 2nd Edition. New Haven/London: Yale University Press.