Skip to content
Snippets Groups Projects
Commit acdf2f71 authored by untergeekDE's avatar untergeekDE
Browse files

Nach der Wahl mit den Ad-Hoc-Ergänzungen und Analyse

parent 19125253
Branches main
No related tags found
No related merge requests found
# analyse.R
endergebnis_df <- aggregiere_stadtteile_mit_briefwahl(stimmbezirke_df) %>%
mutate(wahlbeteiligung = stimmen / wahlberechtigt * 100,
briefwahlquote = briefwahl /stimmen * 100,
jastimmenquote = ja / wahlberechtigt * 100)
write.xlsx(endergebnis_df,"daten/endergebnis.xlsx", overwrite = T)
wahllokale_final_df <- aggregiere_wahllokale(stimmbezirke_df) %>%
mutate(jastimmenquote = ja / wahlberechtigt * 100)
write.xlsx(wahllokale_final_df,"daten/wahllokale_final.xlsx", overwrite=T)
briefwahl_vs_wahllokal <- wahllokale_final_df %>%
group_by(typ) %>%
summarize(across(wahlberechtigt:nein, ~sum(.)))
write.xlsx(briefwahl_vs_wahllokal,"daten/briefwahlauswertung.xlsx", overwrite=T)
......@@ -120,7 +120,8 @@ generiere_balken <- function (wb, ja, nein, auszählung_beendet) {
}
generiere_auszählungsbalken <- function(ausgezählt,anz,max,ts) {
annotate_str <- paste0("Anteil der Wahlberechtigten, die die Auszählung umfasst",
ausgezählt <- floor(anz/max*100)
annotate_str <- paste0("Anzahl der ausgezählten Wahllokale",
# Container Fake-Balken
"<span style='height:24px;display: flex;justify-content: space-around;align-items: flex-end; width: 100%;'>",
# Vordere Pufferzelle 70px
......
......@@ -203,7 +203,7 @@ aggregiere_wahllokale <- function(stimmbezirke_df) {
arrange(ortsteil)
# Sicherheitscheck: Warnen, wenn nicht alle Wahllokale zugeordnet
if (nrow(wahllokale_df) != length(unique(opendata_wahllokale_df$`Wahlraum-Bezeichnung`))) teams_warnung("Nicht alle Stimmbezirke zugeordnet")
return(ortsteile_df)
return(wahllokale_df)
}
......
......@@ -76,8 +76,8 @@ aktualisiere_fom <- function(wl_url = stimmbezirke_url) {
# Bilde das Dataframe
# Sende die Daten an Datawrapper und aktualisiere
fom_dw_df <- fom_df %>%
mutate(ausgezählt = wahlberechtigt / ffm_waehler *100) %>%
mutate(prozent30 = wahlberechtigt * 0.3) %>%
mutate(ausgezählt = meldungen_anz / meldungen_max *100) %>%
mutate(prozent30 = NA) %>%
mutate(quorum = ja / wahlberechtigt * 100) %>%
select(ausgezählt, wahlberechtigt, ungueltig, ja, nein, quorum, prozent30) %>%
# Noch den Endpunkt der 30-Prozent-Linie
......@@ -132,7 +132,7 @@ aktualisiere_fom <- function(wl_url = stimmbezirke_url) {
briefwahl_anz,
" von ",
briefwahl_max,
" Briefwahl-Stimmbezirken ausgezählt. Dies beeinflusst das Ergebnis stark.</strong><br/><br/>",
" Briefwahl-Stimmbezirken ausgezählt.</strong><br/><br/>",
annotate_str)
dw_edit_chart(fom_id,intro = beschreibung_str,annotate = annotate_str)
dw_publish_chart(fom_id)
......
......@@ -73,6 +73,8 @@ Nutzt die Livedaten von https://wahlen.frankfurt.de - die aktuellen Daten nach O
- D2 : Nein-Stimmen
Es gibt 575 Stimmbezirke - also administrative Auszählungs-Einheiten. Fast 200 von diesen "Bezirken" sind die Briefwahl-Auszählungen - sie werden alle in der Messe ausgezählt. Insgesamt gibt es 219 Wahllokale. (vgl. index/opendata-wahllokale.csv)
Eine kleine Falle wurde erst im Lauf des Wahlabends sichtbar: Die Briefwahl-Ergebnisse kommen systematisch später als alle anderen Ergebnisse - da ein Briefwahl-Stimmbezirk aber rechnerisch 0 Wahlberechtigte hat, kann man ohne die Briefwahl-Stimmen kein Quorum berechnen. Deshalb musste die Logik im Lauf des Abends von "% der Wahlberechtigten ausgezählt" auf "% der Wahllokale ausgezählt" umgestellt werden.
## Wann gibt es wo Daten?
......
File added
File added
File added
File added
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment