diff --git a/R/analyse.R b/R/analyse.R new file mode 100644 index 0000000000000000000000000000000000000000..0f5ed0cbb2ef41d58b22d87a26f261341bafb79c --- /dev/null +++ b/R/analyse.R @@ -0,0 +1,20 @@ +# 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) diff --git a/R/generiere_balken.R b/R/generiere_balken.R index eef6e784dd0324c31b1bf65bc01ca2a5fd59bb25..a6329c2022ec5c4fe9cb5c2d9f1e9c4f22b5590e 100644 --- a/R/generiere_balken.R +++ b/R/generiere_balken.R @@ -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 diff --git a/R/lies_aktuellen_stand.R b/R/lies_aktuellen_stand.R index b342474e9685b45516b7ac52b469b74da013a1c7..37b74e469d89f1ca664ba6e21250e27256edea20 100644 --- a/R/lies_aktuellen_stand.R +++ b/R/lies_aktuellen_stand.R @@ -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) } diff --git a/R/update_feldmann.R b/R/update_feldmann.R index f9816d29ce6375688ee4fabb112810dcdec9d20a..e0dd5d6d73505c1a8d37304dcf8eb2236688b0f4 100644 --- a/R/update_feldmann.R +++ b/R/update_feldmann.R @@ -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) diff --git a/README.md b/README.md index 5de0de346c22cba021993fdf49617583b7edb48a..8b5915110aeab48461e986077d0f952fd14750a8 100644 --- a/README.md +++ b/README.md @@ -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? diff --git a/daten/briefwahlauswertung.xlsx b/daten/briefwahlauswertung.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..33924774974ca65e18da95eeeb542aa89bb5b995 Binary files /dev/null and b/daten/briefwahlauswertung.xlsx differ diff --git a/daten/endergebnis.xlsx b/daten/endergebnis.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..4386bd5d3dbfad925403b973eb9fd6195ed29496 Binary files /dev/null and b/daten/endergebnis.xlsx differ diff --git a/daten/fom_df.rds b/daten/fom_df.rds new file mode 100644 index 0000000000000000000000000000000000000000..ac2677958409d845ee46d3f046e568b1b34419c9 Binary files /dev/null and b/daten/fom_df.rds differ diff --git a/daten/wahllokale_final.xlsx b/daten/wahllokale_final.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..fcb496fc1f3267256026c8a0fab22bdad3654bb0 Binary files /dev/null and b/daten/wahllokale_final.xlsx differ