Last active
October 14, 2019 12:51
-
-
Save BERENZ/66174432a7c1dcfd627210e9a8f7ce51 to your computer and use it in GitHub Desktop.
Krotka analiza na podstawie artykułu z Onetu
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## źródło: https://wiadomosci.onet.pl/kraj/sprawdzamy-przedwyborcze-sondaze-ktore-badanie-przewidzialo-wynik-wyborow/4x4qpve | |
### pakiety | |
library(tidyverse) | |
library(rvest) | |
### sciagamy dane | |
read_html("https://wiadomosci.onet.pl/kraj/sprawdzamy-przedwyborcze-sondaze-ktore-badanie-przewidzialo-wynik-wyborow/4x4qpve") %>% | |
html_table(header = TRUE, dec = ",") %>% | |
.[[1]] %>% | |
rename(date = 1, who = 2, customer= 3) %>% | |
add_row(date = "26.05", | |
who = "PKW", | |
customer = "", | |
PiS = 45.38, | |
PE = 38.47, | |
Wiosna = 6.06, | |
Konfederacja = 4.55, | |
`Kukiz'15` = 3.69, | |
`Lewica Razem` = 1.24 | |
) %>% | |
gather(party, val, -date,-who,-customer) %>% | |
arrange(party, desc(date)) %>% | |
mutate(true = ifelse(who == "PKW", val, NA)) %>% | |
fill(true) %>% | |
filter(who != "PKW") %>% | |
mutate(diff = val - true, | |
media = case_when(str_detect(customer,"Do Rzeczy|TVP") ~ "Do Rzeczy|TVP", | |
str_detect(customer, "TVN|Newsweek|Gazeta Wyborcza|OKO|Onet") ~ "TVN|New\n|Gazeta|\nOko|Onet", | |
customer == "" ~ "N/A", | |
TRUE ~ "Pozostałe")) -> df | |
### wykresy | |
ggplot(data = df, | |
aes(x = party, y = diff)) + | |
geom_jitter() + | |
geom_boxplot(alpha = 0.5) + | |
labs(x = "Partia", y = "Sondaż - Wynik PKW", | |
title = "Porównanie wyników sondaży z wynikami PKW", | |
subtitle = "Mniejsze od 0 - niedoszacowanie, większe - przeszacowanie", | |
caption = "Źródło: https://wiadomosci.onet.pl/kraj/sprawdzamy-przedwyborcze-sondaze-ktore-badanie-przewidzialo-wynik-wyborow") + | |
geom_hline(yintercept = 0, col = 'red') -> p1 | |
ggplot(data = df, | |
aes(x = who, y = diff)) + | |
geom_jitter() + | |
geom_boxplot(alpha = 0.5) + | |
labs(x = "Firma", y = "Sondaż - Wynik PKW", | |
title = "Porównanie wyników sondaży z wynikami PKW", | |
subtitle = "Mniejsze od 0 - niedoszacowanie, większe - przeszacowanie", | |
caption = "Źródło: https://wiadomosci.onet.pl/kraj/sprawdzamy-przedwyborcze-sondaze-ktore-badanie-przewidzialo-wynik-wyborow") + | |
geom_hline(yintercept = 0, col = 'red') -> p2 | |
ggplot(data = df, | |
aes(x = media, y = diff)) + | |
geom_jitter() + | |
geom_boxplot(alpha = 0.5) + | |
labs(x = "Media", y = "Sondaż - Wynik PKW", | |
title = "Porównanie wyników sondaży z wynikami PKW", | |
subtitle = "Mniejsze od 0 - niedoszacowanie, większe - przeszacowanie", | |
caption = "Źródło: https://wiadomosci.onet.pl/kraj/sprawdzamy-przedwyborcze-sondaze-ktore-badanie-przewidzialo-wynik-wyborow") + | |
geom_hline(yintercept = 0, col = 'red') + | |
facet_wrap(~party, ncol = 3) -> p3 | |
df %>% | |
mutate(date = paste0(date, ".2019"), | |
date = dmy(date)) %>% | |
ggplot(data = ., aes(x = factor(date), y= diff)) + | |
geom_jitter() + | |
geom_boxplot(alpha = 0.5) + | |
labs(x = "Dzień badania", y = "Sondaż - Wynik PKW", | |
title = "Porównanie wyników sondaży z wynikami PKW", | |
subtitle = "Mniejsze od 0 - niedoszacowanie, większe - przeszacowanie", | |
caption = "Źródło: https://wiadomosci.onet.pl/kraj/sprawdzamy-przedwyborcze-sondaze-ktore-badanie-przewidzialo-wynik-wyborow") + | |
geom_hline(yintercept = 0, col = 'red') + | |
facet_wrap(~party, ncol = 3) + | |
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) -> p4 | |
### zapis do pliku | |
ggsave(plot = p1, file = "p1.png", width = 9, height = 6) | |
ggsave(plot = p2, file = "p2.png", width = 9, height = 6) | |
ggsave(plot = p3, file = "p3.png", width = 9, height = 6) | |
ggsave(plot = p4, file = "p4.png", width = 9, height = 6) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment