Skip to content

Instantly share code, notes, and snippets.

@semenoffalex
Created August 29, 2018 15:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save semenoffalex/88c0905afd137cd51c15b1dd8f6d6547 to your computer and use it in GitHub Desktop.
Save semenoffalex/88c0905afd137cd51c15b1dd8f6d6547 to your computer and use it in GitHub Desktop.
R script for getting and visualizing data about TI8 fantasy league
library(rvest)
library(tidyverse)
library(googlesheets)
# Getting results table from fantasy prizetrac
overview <- read_html("http://fantasy.prizetrac.kr/views/international2018/overview.php")
fpoints <- html_table(overview)[[1]]
# Team names for cleaning players' names
teams <- c("FnaticFnatic", "VGJ.StormVGJS", "OGOG", "Evil GeniusesEG",
"Team LiquidLiquid", "OpTic GamingOpTic", "NewbeeNewbee",
"MineskiMineski", "paiN GamingpaiN", "Team SecretSecret",
"WinstrikeWS", "Vici GamingVG", "Virtus.proVP", "PSG.LGDLGD",
"VGJ.ThunderVGJT", "Team SerenitySerenity", "Invictus GamingiG",
"TNC PredatorTNC")
for (i in seq_along(teams)) {
ti8_ftrack_o$Player <- str_replace_all(ti8_ftrack_o$Player,
teams[[i]], "")
}
# Getting data from forecasts table
# gs_auth(new_user = TRUE) # needed only for the first authorization
forecasts <- gs_title("TI8 Fantasy Forecasters") %>%
gs_read(ws = "forecasts")
# Converting forecasts to long format
forecasts_l <- forecasts %>% select(forecaster, core_1, core_2,
offlane, support_1, support_2,
day) %>%
gather(role, player, core_1:support_2, factor_key = TRUE) %>%
select(-role)
# Renaming columns
colnames(fpoints) <- c("player", "role", "GroupDay1", "GroupDay2",
"GroupDay3", "GroupDay4", "MainDay1",
"MainDay2", "MainDay3", "MainDay4",
"MainDay5", "MainDay6", "Average", "Total")
# Converting results to long format
fpoints_l <- fpoints %>%
select(player, GroupDay1:MainDay6) %>%
gather(day, result, GroupDay1:MainDay6, factor_key = FALSE) %>%
mutate_all(funs(replace(., is.na(.), 0)))
# Joining forecasts and results
results <- forecasts_l %>% left_join(fpoints_l,
by = c("player" = "player",
"day" = "day"))
# Adding points for eqch day
results %>% group_by(forecaster, day) %>%
filter(forecaster != "Semenoffalex" &
forecaster != "Purge") %>%
summarise(res = sum(result)) %>%
mutate(run_tot = cumsum(res)) %>%
ungroup() %>%
group_by(day) %>%
mutate(pos = dense_rank(desc(run_tot))) %>%
arrange(desc(res)) %>%
write_csv("ti8_fantasy_results.csv")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment