sample(c("Florens", "Anne", "Markus"))
getwd()
Load data
# Step 1: Load packages
library(data.table)
library(tidyverse)
Warning message in system("timedatectl", intern = TRUE):
“running command 'timedatectl' had status 1”
── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ──
✔ ggplot2 3.3.5 ✔ purrr 0.3.4
✔ tibble 3.1.6 ✔ dplyr 1.0.7
✔ tidyr 1.1.4 ✔ stringr 1.4.0
✔ readr 2.1.1 ✔ forcats 0.5.1
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::between() masks data.table::between()
✖ dplyr::filter() masks stats::filter()
✖ dplyr::first() masks data.table::first()
✖ dplyr::lag() masks stats::lag()
✖ dplyr::last() masks data.table::last()
✖ purrr::transpose() masks data.table::transpose()
# Step 2: Load data
stadt_data <- fread("Open-Data-Bundestagswahl1343_wue_stadt.csv")
votes <- fread("okvote-fields.tsv")
head(stadt_data)
| datum | wahl | ags | gebiet-nr | gebiet-name | max-schnellmeldungen | anz-schnellmeldungen | A1 | A2 | A3 | ⋯ | D23 | F23 | D24 | F24 | D25 | F25 | D26 | F26 | D27 | F27 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| <chr> | <chr> | <int> | <lgl> | <chr> | <int> | <int> | <int> | <int> | <int> | ⋯ | <int> | <int> | <int> | <int> | <int> | <int> | <int> | <int> | <int> | <int> |
| 26.09.2021 | Wahl zum Deutschen Bundestag | 9663000 | NA | ALTSTADT | 32 | 32 | 5959 | 9117 | 0 | ⋯ | 97 | 41 | 0 | 39 | 0 | 7 | 0 | 89 | 105 | 0 |
| 26.09.2021 | Wahl zum Deutschen Bundestag | 9663000 | NA | ZELLERAU | 12 | 12 | 4313 | 4097 | 0 | ⋯ | 33 | 17 | 0 | 24 | 0 | 15 | 0 | 37 | 66 | 0 |
| 26.09.2021 | Wahl zum Deutschen Bundestag | 9663000 | NA | DÜRRBACHTAL | 10 | 10 | 1936 | 2517 | 0 | ⋯ | 19 | 6 | 0 | 7 | 0 | 7 | 0 | 10 | 46 | 0 |
| 26.09.2021 | Wahl zum Deutschen Bundestag | 9663000 | NA | GROMBÜHL | 10 | 10 | 2900 | 3188 | 0 | ⋯ | 29 | 14 | 0 | 12 | 0 | 9 | 0 | 28 | 36 | 0 |
| 26.09.2021 | Wahl zum Deutschen Bundestag | 9663000 | NA | LINDLEINSMÜHLE | 4 | 4 | 1916 | 1386 | 0 | ⋯ | 5 | 2 | 0 | 10 | 0 | 3 | 0 | 4 | 28 | 0 |
| 26.09.2021 | Wahl zum Deutschen Bundestag | 9663000 | NA | FRAUENLAND | 26 | 26 | 6084 | 8374 | 0 | ⋯ | 66 | 34 | 0 | 24 | 0 | 12 | 0 | 79 | 102 | 0 |
head(votes)
tail(votes)
| column | stimme | partei_beschreibung |
|---|---|---|
| <chr> | <chr> | <chr> |
| datum | Datum des Wahltermins | |
| wahl | Name der Wahl | |
| ags | AGS der Behörde | |
| gebiet-nr | Nummer des Wahlgebiets | |
| gebiet-name | Name des Wahlgebiets | |
| max-schnellmeldungen | Anzahl an insgesamt erwarteten Schnellmeldungen im Wahlgebiet |
| column | stimme | partei_beschreibung |
|---|---|---|
| <chr> | <chr> | <chr> |
| F24 | Zweitstimmen | Team Todenhöfer – Die Gerechtigkeitspartei |
| D25 | Erststimmen | UNABHÄNGIGE für bürgernahe Demokratie |
| F25 | Zweitstimmen | UNABHÄNGIGE für bürgernahe Demokratie |
| D26 | Erststimmen | Volt Deutschland |
| F26 | Zweitstimmen | Volt Deutschland |
| D27 | Erststimmen | Einzelbewerber Schürer |
select(stadt_data, `gebiet-name`, D1:F27) %>%
gather("Partei_Stimme", "Wert", 2:ncol(.)) %>%
left_join(votes, by = c("Partei_Stimme" = "column"))%>%
filter(!is.na(stimme)) %>%
select(-Partei_Stimme) %>%
spread("stimme", "Wert")
| gebiet-name | partei_beschreibung | Erststimmen | Zweitstimmen |
|---|---|---|---|
| <chr> | <chr> | <int> | <int> |
| ALTSTADT | Alternative für Deutschland | 0 | 477 |
| ALTSTADT | Basisdemokratische Partei Deutschland | 242 | 123 |
| ALTSTADT | Bayernpartei | 0 | 5 |
| ALTSTADT | BÜNDNIS 90/DIE GRÜNEN | 4449 | 4267 |
| ALTSTADT | Bündnis C - Christen für Deutschland | 0 | 8 |
| ALTSTADT | Christlich-Soziale Union in Bayern e.V. | 2814 | 2333 |
| ALTSTADT | DER DRITTE WEG | 0 | 2 |
| ALTSTADT | Deutsche Kommunistische Partei | 0 | 7 |
| ALTSTADT | DIE LINKE | 793 | 835 |
| ALTSTADT | Die Urbane. Eine HipHop Partei | 0 | 12 |
| ALTSTADT | Einzelbewerber Schürer | 105 | NA |
| ALTSTADT | Freie Demokratische Partei | 1530 | 1538 |
| ALTSTADT | FREIE WÄHLER | 380 | 233 |
| ALTSTADT | Liberal-Konservative Reformer | 0 | 2 |
| ALTSTADT | Marxistisch-Leninistische Partei Deutschlands | 0 | 3 |
| ALTSTADT | Nationaldemokratische Partei Deutschlands | 0 | 2 |
| ALTSTADT | Ökologisch-Demokratische Partei | 167 | 71 |
| ALTSTADT | Partei der Humanisten | 97 | 41 |
| ALTSTADT | Partei für Arbeit, Rechtsstaat, Tierschutz, Elitenförderung und basisdemokratische Initiative | 0 | 163 |
| ALTSTADT | Partei für Gesundheitsforschung | 0 | 12 |
| ALTSTADT | PARTEI MENSCH UMWELT TIERSCHUTZ | 0 | 115 |
| ALTSTADT | Piratenpartei Deutschland | 0 | 45 |
| ALTSTADT | Sozialdemokratische Partei Deutschlands | 1845 | 2030 |
| ALTSTADT | Team Todenhöfer – Die Gerechtigkeitspartei | 0 | 39 |
| ALTSTADT | UNABHÄNGIGE für bürgernahe Demokratie | 0 | 7 |
| ALTSTADT | V-Partei³ - Partei für Veränderung, Vegetarier und Veganer | 0 | 28 |
| ALTSTADT | Volt Deutschland | 0 | 89 |
| DÜRRBACHTAL | Alternative für Deutschland | 0 | 242 |
| DÜRRBACHTAL | Basisdemokratische Partei Deutschland | 84 | 43 |
| DÜRRBACHTAL | Bayernpartei | 0 | 6 |
| ⋮ | ⋮ | ⋮ | ⋮ |
| VERSBACH | UNABHÄNGIGE für bürgernahe Demokratie | 0 | 8 |
| VERSBACH | V-Partei³ - Partei für Veränderung, Vegetarier und Veganer | 0 | 3 |
| VERSBACH | Volt Deutschland | 0 | 8 |
| ZELLERAU | Alternative für Deutschland | 0 | 393 |
| ZELLERAU | Basisdemokratische Partei Deutschland | 172 | 79 |
| ZELLERAU | Bayernpartei | 0 | 9 |
| ZELLERAU | BÜNDNIS 90/DIE GRÜNEN | 1844 | 1731 |
| ZELLERAU | Bündnis C - Christen für Deutschland | 0 | 2 |
| ZELLERAU | Christlich-Soziale Union in Bayern e.V. | 1370 | 1173 |
| ZELLERAU | DER DRITTE WEG | 0 | 3 |
| ZELLERAU | Deutsche Kommunistische Partei | 0 | 3 |
| ZELLERAU | DIE LINKE | 513 | 541 |
| ZELLERAU | Die Urbane. Eine HipHop Partei | 0 | 8 |
| ZELLERAU | Einzelbewerber Schürer | 66 | NA |
| ZELLERAU | Freie Demokratische Partei | 589 | 529 |
| ZELLERAU | FREIE WÄHLER | 246 | 159 |
| ZELLERAU | Liberal-Konservative Reformer | 0 | 0 |
| ZELLERAU | Marxistisch-Leninistische Partei Deutschlands | 0 | 3 |
| ZELLERAU | Nationaldemokratische Partei Deutschlands | 0 | 1 |
| ZELLERAU | Ökologisch-Demokratische Partei | 95 | 37 |
| ZELLERAU | Partei der Humanisten | 33 | 17 |
| ZELLERAU | Partei für Arbeit, Rechtsstaat, Tierschutz, Elitenförderung und basisdemokratische Initiative | 0 | 76 |
| ZELLERAU | Partei für Gesundheitsforschung | 0 | 7 |
| ZELLERAU | PARTEI MENSCH UMWELT TIERSCHUTZ | 0 | 69 |
| ZELLERAU | Piratenpartei Deutschland | 0 | 21 |
| ZELLERAU | Sozialdemokratische Partei Deutschlands | 1221 | 1240 |
| ZELLERAU | Team Todenhöfer – Die Gerechtigkeitspartei | 0 | 24 |
| ZELLERAU | UNABHÄNGIGE für bürgernahe Demokratie | 0 | 15 |
| ZELLERAU | V-Partei³ - Partei für Veränderung, Vegetarier und Veganer | 0 | 8 |
| ZELLERAU | Volt Deutschland | 0 | 37 |
result <- select(stadt_data, `gebiet-name`, D1:F27) %>%
gather("Partei_Stimme", "Wert", 2:ncol(.)) %>%
left_join(votes, by = c("Partei_Stimme" = "column")) %>%
filter(!is.na(stimme)) %>%
select(-Partei_Stimme) %>%
spread("stimme", "Wert") %>%
identity %>%
replace(is.na(.), 0)
result %>% group_by(`gebiet-name`) %>%
mutate(Erststimmen = Erststimmen/sum(Erststimmen), Zweitstimmen = Zweitstimmen/sum(Zweitstimmen))
| gebiet-name | partei_beschreibung | Erststimmen | Zweitstimmen |
|---|---|---|---|
| <chr> | <chr> | <dbl> | <dbl> |
| ALTSTADT | Alternative für Deutschland | 0.000000000 | 0.0381997277 |
| ALTSTADT | Basisdemokratische Partei Deutschland | 0.019481565 | 0.0098502443 |
| ALTSTADT | Bayernpartei | 0.000000000 | 0.0004004164 |
| ALTSTADT | BÜNDNIS 90/DIE GRÜNEN | 0.358154886 | 0.3417153840 |
| ALTSTADT | Bündnis C - Christen für Deutschland | 0.000000000 | 0.0006406663 |
| ALTSTADT | Christlich-Soziale Union in Bayern e.V. | 0.226533569 | 0.1868343077 |
| ALTSTADT | DER DRITTE WEG | 0.000000000 | 0.0001601666 |
| ALTSTADT | Deutsche Kommunistische Partei | 0.000000000 | 0.0005605830 |
| ALTSTADT | DIE LINKE | 0.063838351 | 0.0668695443 |
| ALTSTADT | Die Urbane. Eine HipHop Partei | 0.000000000 | 0.0009609994 |
| ALTSTADT | Einzelbewerber Schürer | 0.008452745 | 0.0000000000 |
| ALTSTADT | Freie Demokratische Partei | 0.123168572 | 0.1231680948 |
| ALTSTADT | FREIE WÄHLER | 0.030590887 | 0.0186594058 |
| ALTSTADT | Liberal-Konservative Reformer | 0.000000000 | 0.0001601666 |
| ALTSTADT | Marxistisch-Leninistische Partei Deutschlands | 0.000000000 | 0.0002402499 |
| ALTSTADT | Nationaldemokratische Partei Deutschlands | 0.000000000 | 0.0001601666 |
| ALTSTADT | Ökologisch-Demokratische Partei | 0.013443890 | 0.0056859133 |
| ALTSTADT | Partei der Humanisten | 0.007808726 | 0.0032834148 |
| ALTSTADT | Partei für Arbeit, Rechtsstaat, Tierschutz, Elitenförderung und basisdemokratische Initiative | 0.000000000 | 0.0130535757 |
| ALTSTADT | Partei für Gesundheitsforschung | 0.000000000 | 0.0009609994 |
| ALTSTADT | PARTEI MENSCH UMWELT TIERSCHUTZ | 0.000000000 | 0.0092095780 |
| ALTSTADT | Piratenpartei Deutschland | 0.000000000 | 0.0036037479 |
| ALTSTADT | Sozialdemokratische Partei Deutschlands | 0.148526807 | 0.1625690718 |
| ALTSTADT | Team Todenhöfer – Die Gerechtigkeitspartei | 0.000000000 | 0.0031232482 |
| ALTSTADT | UNABHÄNGIGE für bürgernahe Demokratie | 0.000000000 | 0.0005605830 |
| ALTSTADT | V-Partei³ - Partei für Veränderung, Vegetarier und Veganer | 0.000000000 | 0.0022423320 |
| ALTSTADT | Volt Deutschland | 0.000000000 | 0.0071274125 |
| DÜRRBACHTAL | Alternative für Deutschland | 0.000000000 | 0.0658861966 |
| DÜRRBACHTAL | Basisdemokratische Partei Deutschland | 0.023032630 | 0.0117070515 |
| DÜRRBACHTAL | Bayernpartei | 0.000000000 | 0.0016335421 |
| ⋮ | ⋮ | ⋮ | ⋮ |
| VERSBACH | UNABHÄNGIGE für bürgernahe Demokratie | 0.000000000 | 0.0018386578 |
| VERSBACH | V-Partei³ - Partei für Veränderung, Vegetarier und Veganer | 0.000000000 | 0.0006894967 |
| VERSBACH | Volt Deutschland | 0.000000000 | 0.0018386578 |
| ZELLERAU | Alternative für Deutschland | 0.000000000 | 0.0635408246 |
| ZELLERAU | Basisdemokratische Partei Deutschland | 0.027972028 | 0.0127728375 |
| ZELLERAU | Bayernpartei | 0.000000000 | 0.0014551334 |
| ZELLERAU | BÜNDNIS 90/DIE GRÜNEN | 0.299886160 | 0.2798706548 |
| ZELLERAU | Bündnis C - Christen für Deutschland | 0.000000000 | 0.0003233630 |
| ZELLERAU | Christlich-Soziale Union in Bayern e.V. | 0.222800455 | 0.1896523848 |
| ZELLERAU | DER DRITTE WEG | 0.000000000 | 0.0004850445 |
| ZELLERAU | Deutsche Kommunistische Partei | 0.000000000 | 0.0004850445 |
| ZELLERAU | DIE LINKE | 0.083428200 | 0.0874696847 |
| ZELLERAU | Die Urbane. Eine HipHop Partei | 0.000000000 | 0.0012934519 |
| ZELLERAU | Einzelbewerber Schürer | 0.010733453 | 0.0000000000 |
| ZELLERAU | Freie Demokratische Partei | 0.095787933 | 0.0855295069 |
| ZELLERAU | FREIE WÄHLER | 0.040006505 | 0.0257073565 |
| ZELLERAU | Liberal-Konservative Reformer | 0.000000000 | 0.0000000000 |
| ZELLERAU | Marxistisch-Leninistische Partei Deutschlands | 0.000000000 | 0.0004850445 |
| ZELLERAU | Nationaldemokratische Partei Deutschlands | 0.000000000 | 0.0001616815 |
| ZELLERAU | Ökologisch-Demokratische Partei | 0.015449667 | 0.0059822150 |
| ZELLERAU | Partei der Humanisten | 0.005366726 | 0.0027485853 |
| ZELLERAU | Partei für Arbeit, Rechtsstaat, Tierschutz, Elitenförderung und basisdemokratische Initiative | 0.000000000 | 0.0122877930 |
| ZELLERAU | Partei für Gesundheitsforschung | 0.000000000 | 0.0011317704 |
| ZELLERAU | PARTEI MENSCH UMWELT TIERSCHUTZ | 0.000000000 | 0.0111560226 |
| ZELLERAU | Piratenpartei Deutschland | 0.000000000 | 0.0033953112 |
| ZELLERAU | Sozialdemokratische Partei Deutschlands | 0.198568873 | 0.2004850445 |
| ZELLERAU | Team Todenhöfer – Die Gerechtigkeitspartei | 0.000000000 | 0.0038803557 |
| ZELLERAU | UNABHÄNGIGE für bürgernahe Demokratie | 0.000000000 | 0.0024252223 |
| ZELLERAU | V-Partei³ - Partei für Veränderung, Vegetarier und Veganer | 0.000000000 | 0.0012934519 |
| ZELLERAU | Volt Deutschland | 0.000000000 | 0.0059822150 |
# Stimmen je Parteil [%] unabhängig von Stadtteil
result %>%
ungroup() %>%
select(-`gebiet-name`) %>%
group_by(partei_beschreibung) %>%
summarize(Erststimmen = sum(Erststimmen)/sum(result$Erststimmen), Zweitstimmen = sum(Zweitstimmen)/sum(result$Zweitstimmen))
| partei_beschreibung | Erststimmen | Zweitstimmen |
|---|---|---|
| <chr> | <dbl> | <dbl> |
| Alternative für Deutschland | 0.000000000 | 0.0594380122 |
| Basisdemokratische Partei Deutschland | 0.024682956 | 0.0120983479 |
| Bayernpartei | 0.000000000 | 0.0008195655 |
| BÜNDNIS 90/DIE GRÜNEN | 0.268319177 | 0.2558085079 |
| Bündnis C - Christen für Deutschland | 0.000000000 | 0.0006894757 |
| Christlich-Soziale Union in Bayern e.V. | 0.291614862 | 0.2451541564 |
| DER DRITTE WEG | 0.000000000 | 0.0002601795 |
| Deutsche Kommunistische Partei | 0.000000000 | 0.0002861975 |
| DIE LINKE | 0.054731772 | 0.0541953948 |
| Die Urbane. Eine HipHop Partei | 0.000000000 | 0.0007415116 |
| Einzelbewerber Schürer | 0.009723985 | 0.0000000000 |
| Freie Demokratische Partei | 0.117433810 | 0.1106933784 |
| FREIE WÄHLER | 0.039013729 | 0.0248211266 |
| Liberal-Konservative Reformer | 0.000000000 | 0.0002211526 |
| Marxistisch-Leninistische Partei Deutschlands | 0.000000000 | 0.0001951346 |
| Nationaldemokratische Partei Deutschlands | 0.000000000 | 0.0002992065 |
| Ökologisch-Demokratische Partei | 0.013754924 | 0.0062443086 |
| Partei der Humanisten | 0.005614522 | 0.0024066606 |
| Partei für Arbeit, Rechtsstaat, Tierschutz, Elitenförderung und basisdemokratische Initiative | 0.000000000 | 0.0092363731 |
| Partei für Gesundheitsforschung | 0.000000000 | 0.0011838168 |
| PARTEI MENSCH UMWELT TIERSCHUTZ | 0.000000000 | 0.0105242617 |
| Piratenpartei Deutschland | 0.000000000 | 0.0038766749 |
| Sozialdemokratische Partei Deutschlands | 0.175110262 | 0.1897098998 |
| Team Todenhöfer – Die Gerechtigkeitspartei | 0.000000000 | 0.0027058670 |
| UNABHÄNGIGE für bürgernahe Demokratie | 0.000000000 | 0.0016131130 |
| V-Partei³ - Partei für Veränderung, Vegetarier und Veganer | 0.000000000 | 0.0012878886 |
| Volt Deutschland | 0.000000000 | 0.0054897880 |