u <- "http://publicuniversityhonors.com/2016/09/18/average-u-s-news-rankings-for-126-universities-2010-1017/"
d <- u %>%
read_html() %>%
html_nodes(xpath = '//*[@class="tablepress tablepress-id-100"]') %>%
html_table() %>%
as.data.frame()
t <- d %>%
slice(2:nrow(d)) %>%
select(school = `US.News.2012..2019`,
X2012:X2019) %>%
gather(year, ranking, -school) %>%
mutate(year = str_sub(year, start = 2),
year = as.integer(year)) %>%
arrange(school, year) %>%
group_by(school) %>%
mutate(ranking_change = ranking - lag(ranking)) %>%
select(school, year, ranking_change) %>%
filter(!is.na(ranking_change)) %>%
summarize(mean_change_per_year = round(mean(ranking_change),3),
abs_mean_change_per_year = round(abs(mean(ranking_change)), 3)) %>%
arrange(desc(abs_mean_change_per_year)) %>%
select(School = school, `Mean Change in Ranking / Year` = mean_change_per_year, `Absolute Val. Mean Change in Ranking / Year` = abs_mean_change_per_year)
t %>%
summarize(`Average Absolute Value Change / Year` = mean(`Absolute Val. Mean Change in Ranking / Year`))
## # A tibble: 1 x 1
## `Average Absolute Value Change / Year`
## <dbl>
## 1 1.52
On average, schools’ ranking changes 1.52 places per year
That’s not very much.