Advertisement
Guest User

Untitled

a guest
Sep 11th, 2018
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 0.93 KB | None | 0 0
  1. library(xml2)
  2. library(tidyverse)
  3.  
  4. from_file <- function(filename) {
  5.   print(filename)
  6.   read_xml(filename) %>%
  7.     xml_find_all('.//VALDISTRIKT') %>%
  8.     map_df(~{
  9.       KOD <- xml_attr(.x, 'KOD')
  10.       VOTES <- xml_attr(.x, 'RÖSTER')
  11.      
  12.       .x %>%
  13.         xml_find_all('.//GILTIGA') %>%
  14.         map_df(~{
  15.           xml_attrs(.x) %>%
  16.             as.list() %>%
  17.             as.data.frame() %>%
  18.             transmute(KOD = as.character(KOD),
  19.                       district_total_votes = as.integer(as.character(VOTES)),
  20.                       party = as.character(PARTI),
  21.                       votes = as.integer(as.character(RÖSTER)))
  22.         })
  23.  
  24.     })
  25. }
  26.  
  27. # Data från https://data.val.se/val/val2018/valnatt/valnatt.zip
  28. # uppackad till ~/tmp/valnatt nedan
  29.  
  30. df <- tibble(filename = list.files('~/tmp/valnatt/', '.*[0-9]{4}R.xml', full.names = TRUE)) %>%
  31.   mutate(data = map(filename, from_file)) %>%
  32.   unnest()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement