Skip to content

Instantly share code, notes, and snippets.

@peterdalle
Last active August 29, 2015 14:27
Show Gist options
  • Save peterdalle/bd15355cfab7dffb88d9 to your computer and use it in GitHub Desktop.
Save peterdalle/bd15355cfab7dffb88d9 to your computer and use it in GitHub Desktop.
Hämta namn, parti, valkrets och plats för alla 349 ledamöter i Sveriges riksdag
library(rvest) # install.packages("rvest")
library(plyr) # install.packages("plyr")
# Get html from url: Sveriges riksdagsledamöter 2014-2018.
riksdag.html <- html("https://sv.wikipedia.org/wiki/Lista_%C3%B6ver_ledam%C3%B6ter_av_Sveriges_riksdag_2014%E2%80%932018", encoding = "UTF8")
# Import table from html.
riksdag.tables <- html_table(riksdag.html, fill=TRUE, trim=TRUE)
riksdag.df <- riksdag.tables[[1]]
# Remove empty column.
riksdag.df <- riksdag.df[,-3]
# Rename head.
names(riksdag.df) <- c("Plats", "Namn", "Parti", "Valkets")
# html_table() screw up the names, get them with xpath instead
Names <- riksdag.html %>% html_nodes(xpath="//table[1]/tr/td[2]/b/a") %>% html_text() # Get all names (Firstname Lastname)
riksdag.df$Namn = Names
# Add last names too.
LastNames <- riksdag.html %>% html_nodes(xpath="//table[1]/tr/td[2]/span[1]") %>% html_text() # Get all names (Lastname, Firstname)
riksdag.df$Efternamn = LastNames
# Set party codes
riksdag.df$PartiBet[riksdag.df$Parti=="Centerpartiet"] <- "C"
riksdag.df$PartiBet[riksdag.df$Parti=="Folkpartiet"] <- "FP"
riksdag.df$PartiBet[riksdag.df$Parti=="Kristdemokraterna"] <- "KD"
riksdag.df$PartiBet[riksdag.df$Parti=="Miljöpartiet"] <- "MP"
riksdag.df$PartiBet[riksdag.df$Parti=="Moderaterna"] <- "M"
riksdag.df$PartiBet[riksdag.df$Parti=="Sverigedemokraterna"] <- "SD"
riksdag.df$PartiBet[riksdag.df$Parti=="Socialdemokraterna"] <- "S"
riksdag.df$PartiBet[riksdag.df$Parti=="Vänsterpartiet"] <- "V"
# Cleanup table: delete "[n 1]" from name
riksdag.df <- mutate(riksdag.df, Namn=sapply(strsplit(riksdag.df$Namn, split='[', fixed=TRUE), function(x) (x[1])))
# Cleanup variables
rm(Names)
rm(LastNames)
rm(riksdag.html)
rm(riksdag.tables)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment