Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- library(rvest)
- install.packages("archivist")
- install.packages("bitops")
- library(archivist)
- library(lubridate)
- library(dplyr)
- poslowie <- list()
- for (posel in 1:50) {
- strona <- read_html(paste0("http://sejm.gov.pl/sejm8.nsf/posel.xsp?id=",posel%/%100, (posel%/%10)%%10, posel %% 10))
- nazwisko <- html_text(html_nodes(strona, "h1"))
- pola <- html_text(html_nodes(strona, ".data p"))
- if (any(pola == "Wygaśnięcie mandatu:")) {
- ind <- which(pola == "Wygaśnięcie mandatu:")
- pola <- pola[-ind+c(0,-1)]
- if (!grepl(pola[ind], pattern=":$"))
- pola <- pola[-ind]
- }
- wartosci <- pola[seq(2, length(pola), 2)]
- names(wartosci) <- pola[seq(1, length(pola), 2)]
- wartosci[["Nazwisko:"]] <- nazwisko
- id <- as.character(posel)
- poslowie[[id]] <- wartosci
- #print(wartosci)
- }
- pola <- c("Liczba głosów:", "Klub/koło:", "Data i miejsce urodzenia:", "Wykształcenie:", "Zawód:", "Nazwisko:", "Wiek:", "Okręg wyborczy:")
- dane <- list()
- for(pole in pola) {
- dane[[pole]] <- sapply(poslowie, function(posel) posel[pole])
- }
- df <- as.data.frame(dane)
- colnames(df) <- c("Glosow", "Klub", "Data", "Wyksztalcenie", "Zawod", "ImieNazwisko", "Wiek", "OkregWyborczy")
- rownames(df) <- names(poslowie)
- df$Klub <- gsub(df$Klub, pattern = "Klub Parlamentarny |Klub Poselski ", replacement="")
- df$DataUrodzenia <- gsub(df$Data, pattern = ",.*$", replacement = "")
- df$MiejsceUrodzenia <- gsub(df$Data, pattern = "^.*,.", replacement = "")
- df$Wiek <- as.numeric(round( (now() - as.POSIXct(dmy(df$DataUrodzenia)))/(365), 2))
- poslowie <- df[-1]
- poslowie$Glosow <- as.numeric(as.character(poslowie$Glosow))
- poslowie$Klub <- factor(poslowie$Klub)
- poslowie$DataUrodzenia <- dmy(poslowie$DataUrodzenia)
- poslowie$MiejsceUrodzenia <- factor(poslowie$MiejsceUrodzenia)
- poslowie$Wiek <- as.numeric(as.character(poslowie$Wiek))
- poslowie$OkregWyborczy <- factor(poslowie$OkregWyborczy)
- #head(poslowie)
- #summary(poslowie)
- #table(poslowie$Wyksztalcenie)
- #factor(poslowie$MiejsceUrodzenia)
- #poslowie$Klub
- #poslowie$Okreg
- # ------------ Liczebnosc poslow na dany klub ------------
- poslowie_na_klub = data.frame(table(poslowie$Klub))
- colnames(poslowie_na_klub) <- c("Klub", "Ilość osób")
- # wykres liczebnosci poslow na dany klub
- install.packages("googleVis")
- library(googleVis)
- Pie <- gvisPieChart(poslowie_na_klub)
- plot(Pie)
- # ------------ Liczba poslow z danym zawodem --------------------
- poslowie_na_zawod = data.frame(table(poslowie$Zawod))
- colnames(poslowie_na_klub) <- c("Zawod", "Ilość osób")
- # wykres liczebnosci poslow na dany klub
- install.packages("googleVis")
- library(googleVis)
- Pie <- gvisPieChart(poslowie_na_zawod)
- plot(Pie)
- # ------------ Poslowie z najwieksza iloscia glosow na kazdy okreg ------------
- # tworzy nową tabele df1, wybiera odpowiednie kolumny
- df1 <- select(df, ImieNazwisko, OkregWyborczy, Glosow)
- colnames(df1) <- c("Nazwisko", "Okreg", "Glosow")
- df1$Glosow <- as.numeric(as.character(df1$Glosow))
- # aggregate - grupuje wg. okregu, wyciagajac posla z najwieksza iloscia glosow w swoim okregu
- aggregate(df1$Glosow, by = list(df1$Okreg), max)
- df1 = aggregate(Glosow ~ Okreg, data = df1, max)
- # dodaje informacje o posle z najwieksza iloscia glosow w swoim okregu
- df1<-merge(x=df,y=df1, by="Glosow")
- # tworzy nową tabele df2, wybiera odpowiednie kolumny o posle z najwieksza iloscia glosow w danym okregu
- df2 <- select(df1, ImieNazwisko, OkregWyborczy, Glosow)
- df2$Glosow <- as.numeric(as.character(df2$Glosow))
- colnames(df2) <- c("Nazwisko", "Okreg", "Glosow")
- # summary(df2)
- install.packages("googleVis")
- library(googleVis)
- Column <- gvisColumnChart(df2)
- plot(Column)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement