Skip to content

Instantly share code, notes, and snippets.

@BERENZ
Last active October 14, 2019 12:51
Show Gist options
  • Save BERENZ/66174432a7c1dcfd627210e9a8f7ce51 to your computer and use it in GitHub Desktop.
Save BERENZ/66174432a7c1dcfd627210e9a8f7ce51 to your computer and use it in GitHub Desktop.
Krotka analiza na podstawie artykułu z Onetu
## ź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