Advertisement
Guest User

Untitled

a guest
Dec 15th, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.64 KB | None | 0 0
  1. library(rvest)
  2. install.packages("archivist")
  3. install.packages("bitops")
  4. library(archivist)
  5. library(lubridate)
  6. library(dplyr)
  7.  
  8.  
  9. poslowie <- list()
  10. for (posel in 1:50) {
  11. strona <- read_html(paste0("http://sejm.gov.pl/sejm8.nsf/posel.xsp?id=",posel%/%100, (posel%/%10)%%10, posel %% 10))
  12. nazwisko <- html_text(html_nodes(strona, "h1"))
  13.  
  14. pola <- html_text(html_nodes(strona, ".data p"))
  15. if (any(pola == "Wygaśnięcie mandatu:")) {
  16. ind <- which(pola == "Wygaśnięcie mandatu:")
  17. pola <- pola[-ind+c(0,-1)]
  18. if (!grepl(pola[ind], pattern=":$"))
  19. pola <- pola[-ind]
  20. }
  21. wartosci <- pola[seq(2, length(pola), 2)]
  22. names(wartosci) <- pola[seq(1, length(pola), 2)]
  23. wartosci[["Nazwisko:"]] <- nazwisko
  24. id <- as.character(posel)
  25. poslowie[[id]] <- wartosci
  26. #print(wartosci)
  27. }
  28.  
  29. pola <- c("Liczba głosów:", "Klub/koło:", "Data i miejsce urodzenia:", "Wykształcenie:", "Zawód:", "Nazwisko:", "Wiek:", "Okręg wyborczy:")
  30.  
  31. dane <- list()
  32.  
  33. for(pole in pola) {
  34. dane[[pole]] <- sapply(poslowie, function(posel) posel[pole])
  35.  
  36. }
  37.  
  38. df <- as.data.frame(dane)
  39. colnames(df) <- c("Glosow", "Klub", "Data", "Wyksztalcenie", "Zawod", "ImieNazwisko", "Wiek", "OkregWyborczy")
  40. rownames(df) <- names(poslowie)
  41. df$Klub <- gsub(df$Klub, pattern = "Klub Parlamentarny |Klub Poselski ", replacement="")
  42. df$DataUrodzenia <- gsub(df$Data, pattern = ",.*$", replacement = "")
  43. df$MiejsceUrodzenia <- gsub(df$Data, pattern = "^.*,.", replacement = "")
  44. df$Wiek <- as.numeric(round( (now() - as.POSIXct(dmy(df$DataUrodzenia)))/(365), 2))
  45.  
  46. poslowie <- df[-1]
  47. poslowie$Glosow <- as.numeric(as.character(poslowie$Glosow))
  48. poslowie$Klub <- factor(poslowie$Klub)
  49. poslowie$DataUrodzenia <- dmy(poslowie$DataUrodzenia)
  50. poslowie$MiejsceUrodzenia <- factor(poslowie$MiejsceUrodzenia)
  51. poslowie$Wiek <- as.numeric(as.character(poslowie$Wiek))
  52. poslowie$OkregWyborczy <- factor(poslowie$OkregWyborczy)
  53.  
  54. #head(poslowie)
  55. #summary(poslowie)
  56. #table(poslowie$Wyksztalcenie)
  57. #factor(poslowie$MiejsceUrodzenia)
  58. #poslowie$Klub
  59. #poslowie$Okreg
  60.  
  61.  
  62. # ------------ Liczebnosc poslow na dany klub ------------
  63. poslowie_na_klub = data.frame(table(poslowie$Klub))
  64. colnames(poslowie_na_klub) <- c("Klub", "Ilość osób")
  65.  
  66. # wykres liczebnosci poslow na dany klub
  67. install.packages("googleVis")
  68. library(googleVis)
  69. Pie <- gvisPieChart(poslowie_na_klub)
  70. plot(Pie)
  71.  
  72. # ------------ Liczba poslow z danym zawodem --------------------
  73. poslowie_na_zawod = data.frame(table(poslowie$Zawod))
  74. colnames(poslowie_na_klub) <- c("Zawod", "Ilość osób")
  75.  
  76. # wykres liczebnosci poslow na dany klub
  77. install.packages("googleVis")
  78. library(googleVis)
  79. Pie <- gvisPieChart(poslowie_na_zawod)
  80. plot(Pie)
  81.  
  82. # ------------ Poslowie z najwieksza iloscia glosow na kazdy okreg ------------
  83.  
  84. # tworzy nową tabele df1, wybiera odpowiednie kolumny
  85. df1 <- select(df, ImieNazwisko, OkregWyborczy, Glosow)
  86. colnames(df1) <- c("Nazwisko", "Okreg", "Glosow")
  87. df1$Glosow <- as.numeric(as.character(df1$Glosow))
  88. # aggregate - grupuje wg. okregu, wyciagajac posla z najwieksza iloscia glosow w swoim okregu
  89. aggregate(df1$Glosow, by = list(df1$Okreg), max)
  90. df1 = aggregate(Glosow ~ Okreg, data = df1, max)
  91. # dodaje informacje o posle z najwieksza iloscia glosow w swoim okregu
  92. df1<-merge(x=df,y=df1, by="Glosow")
  93. # tworzy nową tabele df2, wybiera odpowiednie kolumny o posle z najwieksza iloscia glosow w danym okregu
  94. df2 <- select(df1, ImieNazwisko, OkregWyborczy, Glosow)
  95. df2$Glosow <- as.numeric(as.character(df2$Glosow))
  96. colnames(df2) <- c("Nazwisko", "Okreg", "Glosow")
  97. # summary(df2)
  98.  
  99. install.packages("googleVis")
  100. library(googleVis)
  101. Column <- gvisColumnChart(df2)
  102. plot(Column)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement