Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- library(tidyverse)
- library(rvest)
- library(janitor)
- library(lubridate)
- library(directlabels)
- library(ggrepel)
- library(ggthemes)
- setwd("Development/r/2103.nhl")
- leafs <- read_html("https://en.wikipedia.org/wiki/2020%E2%80%9321_Toronto_Maple_Leafs_season") %>%
- html_table(fill = TRUE) %>%
- .[[4]] %>%
- row_to_names(row_number = 2) %>%
- select(2,4) %>%
- filter(!Date %in% c("Game", "Date")) %>%
- filter(!grepl("schedule", Date)) %>%
- filter(Score != "–") %>%
- separate(Score, c("HomeScore", "VisitorScore"), sep = "–") %>%
- mutate(result = case_when(HomeScore > VisitorScore ~ 1,
- TRUE ~ -1)) %>%
- mutate(Leafs = cumsum(result)) %>%
- select(Date, Leafs) %>%
- mutate(Date = mdy(paste(Date, "2021", sep = " ")))
- jets <- read_html("https://en.wikipedia.org/wiki/2020%E2%80%9321_Winnipeg_Jets_season") %>%
- html_table(fill = TRUE) %>%
- .[[4]] %>%
- row_to_names(row_number = 3) %>%
- select(2:5) %>%
- filter(!Date %in% c("Game", "Date")) %>%
- filter(!grepl("Road|Legend", Date)) %>%
- filter(grepl("–", Score)) %>%
- separate(Score, c("VisitorScore", "HomeScore"), sep = "–") %>%
- mutate(result = case_when(HomeScore > VisitorScore & Home == "Winnipeg" ~ 1,
- HomeScore > VisitorScore & Home != "Winnipeg" ~ -1,
- HomeScore < VisitorScore & Visitor != "Winnipeg" ~ -1,
- HomeScore < VisitorScore & Visitor == "Winnipeg" ~ 1)) %>%
- mutate(Jets = cumsum(result)) %>%
- select(Date, Jets) %>%
- mutate(Date = mdy(paste(Date, "2021", sep = " ")))
- oilers <- read_html("https://en.wikipedia.org/wiki/2020%E2%80%9321_Edmonton_Oilers_season") %>%
- html_table(fill = TRUE) %>%
- .[[3]] %>%
- row_to_names(row_number = 3) %>%
- select(2:5) %>%
- filter(!Date %in% c("Game", "Date")) %>%
- filter(!grepl("Road|Legend", Date)) %>%
- filter(grepl("–", Score)) %>%
- separate(Score, c("VisitorScore", "HomeScore"), sep = "–") %>%
- mutate(result = case_when(HomeScore > VisitorScore & Home == "Edmonton" ~ 1,
- HomeScore > VisitorScore & Home != "Edmonton" ~ -1,
- HomeScore < VisitorScore & Visitor != "Edmonton" ~ -1,
- HomeScore < VisitorScore & Visitor == "Edmonton" ~ 1)) %>%
- mutate(Oilers = cumsum(result)) %>%
- select(Date, Oilers) %>%
- mutate(Date = mdy(paste(Date, "2021", sep = " ")))
- habs <- read_html("https://en.wikipedia.org/wiki/2020%E2%80%9321_Montreal_Canadiens_season") %>%
- html_table(fill = TRUE) %>%
- .[[3]] %>%
- row_to_names(row_number = 3) %>%
- select(2:5) %>%
- filter(!Date %in% c("Game", "Date")) %>%
- filter(!grepl("Road|Legend", Date)) %>%
- filter(grepl("–", Score)) %>%
- separate(Score, c("VisitorScore", "HomeScore"), sep = "–") %>%
- mutate(result = case_when(HomeScore > VisitorScore & Home == "Montreal" ~ 1,
- HomeScore > VisitorScore & Home != "Montreal" ~ -1,
- HomeScore < VisitorScore & Visitor != "Montreal" ~ -1,
- HomeScore < VisitorScore & Visitor == "Montreal" ~ 1)) %>%
- mutate(Habs = cumsum(result)) %>%
- select(Date, Habs) %>%
- mutate(Date = mdy(paste(Date, "2021", sep = " ")))
- flames <- read_html("https://en.wikipedia.org/wiki/2020%E2%80%9321_Calgary_Flames_season") %>%
- html_table(fill = TRUE) %>%
- .[[3]] %>%
- row_to_names(row_number = 3) %>%
- select(2:5) %>%
- filter(!Date %in% c("Game", "Date")) %>%
- filter(!grepl("Road|Legend", Date)) %>%
- filter(grepl("–", Score)) %>%
- separate(Score, c("VisitorScore", "HomeScore"), sep = "–") %>%
- mutate(result = case_when(HomeScore > VisitorScore & Home == "Calgary" ~ 1,
- HomeScore > VisitorScore & Home != "Calgary" ~ -1,
- HomeScore < VisitorScore & Visitor != "Calgary" ~ -1,
- HomeScore < VisitorScore & Visitor == "Calgary" ~ 1)) %>%
- mutate(Flames = cumsum(result)) %>%
- select(Date, Flames) %>%
- mutate(Date = mdy(paste(Date, "2021", sep = " ")))
- canucks <- read_html("https://en.wikipedia.org/wiki/2020%E2%80%9321_Vancouver_Canucks_season") %>%
- html_table(fill = TRUE) %>%
- .[[3]] %>%
- row_to_names(row_number = 3) %>%
- select(2:5) %>%
- filter(!Date %in% c("Game", "Date")) %>%
- filter(!grepl("Road|Legend", Date)) %>%
- filter(grepl("–", Score)) %>%
- separate(Score, c("VisitorScore", "HomeScore"), sep = "–") %>%
- mutate(result = case_when(HomeScore > VisitorScore & Home == "Vancouver" ~ 1,
- HomeScore > VisitorScore & Home != "Vancouver" ~ -1,
- HomeScore < VisitorScore & Visitor != "Vancouver" ~ -1,
- HomeScore < VisitorScore & Visitor == "Vancouver" ~ 1)) %>%
- mutate(Canucks = cumsum(result)) %>%
- na.omit() %>%
- select(Date, Canucks) %>%
- mutate(Date = mdy(paste(Date, "2021", sep = " ")))
- senators <- read_html("https://en.wikipedia.org/wiki/2020%E2%80%9321_Ottawa_Senators_season") %>%
- html_table(fill = TRUE) %>%
- .[[3]] %>%
- row_to_names(row_number = 3) %>%
- select(2:5) %>%
- filter(!Date %in% c("Game", "Date")) %>%
- filter(!grepl("Road|Legend", Date)) %>%
- filter(grepl("–", Score)) %>%
- separate(Score, c("VisitorScore", "HomeScore"), sep = "–") %>%
- mutate(result = case_when(HomeScore > VisitorScore & Home == "Ottawa" ~ 1,
- HomeScore > VisitorScore & Home != "Ottawa" ~ -1,
- HomeScore < VisitorScore & Visitor != "Ottawa" ~ -1,
- HomeScore < VisitorScore & Visitor == "Ottawa" ~ 1)) %>%
- mutate(Senators = cumsum(result)) %>%
- select(Date, Senators) %>%
- mutate(Date = mdy(paste(Date, "2021", sep = " ")))
- canucks %>%
- full_join(flames) %>%
- full_join(habs) %>%
- full_join(jets) %>%
- full_join(leafs) %>%
- full_join(oilers) %>%
- full_join(senators) %>%
- arrange(Date) %>%
- gather(Team, record, 2:8) %>%
- as_tibble() %>%
- na.omit() %>%
- group_by(Team) %>%
- mutate(label = if_else(Date == max(Date),
- as.character(Team),
- NA_character_)) %>%
- mutate(col = case_when(Team == "Leafs" ~ "Leafs",
- Team == "Senators" ~ "Senators",
- TRUE ~ "Other")) %>%
- ggplot(aes(Date, record, color = col, group = Team, linetype = Team)) +
- geom_point() +
- geom_path() +
- geom_hline(yintercept = 0) +
- geom_label_repel(aes(label = label), nudge_x = 1, na.rm = TRUE) +
- labs(x = "2021 NHL Season to Date",
- y = "",
- title = "A tale of seven cities: NHL North records to date",
- subtitle = "Cumulative games above / below .500 since January") +
- scale_color_manual(values = c("blue", "grey", "red")) +
- theme_bw() +
- theme(legend.position = "none")
- ggsave("nhlplot.png", width = 10, height = 6)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement