Kuntakohtaiset mitalisijat vuoden 2019 eduskuntavaaleissa. Alueen väri kertoo eniten ääniä saaneen puolueen. Siirrä osoitin kunnan päälle nähdäksesi kolme eniten ääniä saanutta! Lähdekoodi kartan alla!
Lähdekoodi
[/kode]
library(tidyverse)library(leaflet)library(htmlwidgets)library(glue)library(sf)flie <-tempfile()download.file("https://tulospalvelu.vaalit.fi/EKV-2019/ekv-2019_ehd_maa.csv.zip", flie)tmpdir <-tempdir()unzip(zipfile = flie, exdir = tmpdir)dat <-read_csv2(glue("{tmpdir}/ekv-2019_aea_maa.csv"), col_names =FALSE)dat_kunnat <- dat %>%filter(grepl("\\*", X5)) %>%# äänimäärä ja ehdokasnumero kokonaisluvuiksimutate(X3 =as.integer(X3),X35 =as.integer(X35),X15 =as.integer(X15)) %>%# vaalipiirit veksfilter(!is.na(X3)) %>%# Merkistöenkoodauksetmutate(X19 =iconv(x = X19, from ="Windows-1252", to ="UTF-8"),X18 =iconv(x = X18, from ="Windows-1252", to ="UTF-8"),X16 =iconv(x = X16, from ="Windows-1252", to ="UTF-8"),X12 =iconv(x = X12, from ="Windows-1252", to ="UTF-8")) %>%# filter(X3 == 924) %>% select(X3,X5,X6,X12,X15,X16,X18,X19,X35)dat_alue <- dat_kunnat %>%# lasketaan kuntakohtaiset summatgroup_by(X3) %>%mutate(X35_summa =sum(X35, na.rm =TRUE)) %>%ungroup() %>%# Lasketaan kullekin uurnalla ja ehdokkaalle ääniosuusmutate(osuus =round(X35 / X35_summa*100, 1)) %>%group_by(X3,X16) %>%arrange(desc(osuus)) %>%slice(1:3) %>%mutate(rank =1:n()) %>%ungroup() %>%mutate(nimi =paste(X18,X19)) %>%select(X3,X16,nimi,X12,X35,rank,osuus) %>%arrange(X3,rank)# puoluekohtaiset kannatuksetdat_puoluekannatus <- dat_kunnat %>%# lasketaan kuntakohtaiset summatgroup_by(X3) %>%mutate(X35_summa =sum(X35, na.rm =TRUE)) %>%ungroup() %>%# lasketaan puoluekohtaiset äänet kussakin kunnassagroup_by(X3,X12) %>%mutate(puolue_aanet =sum(X35, na.rm =TRUE)) %>%ungroup() %>%# valitaan yksi rivi per kunta ja puoluedistinct(X3,X12, .keep_all =TRUE) %>%select(X3,X12,X16,puolue_aanet,X35_summa) %>%arrange(desc(puolue_aanet)) %>%# Lasketaan kullekin uurnalla ja ehdokkaalle ääniosuusmutate(osuus =round(puolue_aanet / X35_summa*100, 1)) %>%group_by(X3,X16) %>%arrange(desc(osuus)) %>%slice(1) %>%mutate(rank =1:n()) %>%ungroup() %>%arrange(X16,rank)dat_alue_voittaja <- dat_alue %>%filter(rank ==1)dat_alue_top3 <- dat_alue %>%mutate(nimi =glue("{nimi} {X12} {osuus} % {X35} ääntä")) %>%select(-osuus,-X35,-X12) %>%spread(key = rank, value = nimi) %>%setNames(c("X3","X16","t1","t2","t3"))dat_kartta_top3 <-left_join(kunnat19, dat_alue_top3, by =c("NATCODE"="X3"))dat_kartta_voittaja <-left_join(kunnat19, dat_alue_voittaja, by =c("NATCODE"="X3"))dat_kartta_puolue <-left_join(kunnat19, dat_puoluekannatus, by =c("NATCODE"="X3"))pal <- leaflet::colorFactor(palette ="Set3", domain =factor(dat_kartta_puolue$X12))labels <-sprintf("<italic>%s</italic><br/><strong>1. %s</strong><br/>2. %s<br/>3. %s<br/>", dat_kartta_top3$NAMEFIN, dat_kartta_top3$t1, dat_kartta_top3$t2, dat_kartta_top3$t3) %>%lapply(htmltools::HTML)leaflet(dat_kartta_voittaja) %>%addProviderTiles(provider = providers$CartoDB.Positron) %>%addPolygons(fillColor =~pal(factor(X12)),color ="white",weight =1,opacity =1,dashArray ="3",fillOpacity =0.4,highlight =highlightOptions(weight =2,color ="#666",dashArray ="",fillOpacity =0.4,bringToFront =TRUE),label = labels,labelOptions =labelOptions(opacity = .7,style =list("font-weight"="normal",padding ="2px 4px"),textsize ="12px",direction ="auto") ) %>%addLegend(pal = pal, values =~X12, opacity =0.7, title ="Kunnan suosituin puolue",position ="bottomright")