kickoffData <- pbp %>%
filter(play_type == "kickoff")
kickoffSplit <- strsplit(kickoffData$desc, " ")
dateUnlist <- unlist(strsplit(kickoffData$game_date, "-"))
years <- as.numeric(dateUnlist[seq(1, length(dateUnlist), 3)])
months <- as.numeric(dateUnlist[seq(2, length(dateUnlist), 3)])
distance <- function(descSplit) {
dist <- descSplit[3]
dist
}
#distance(kickoffSplit[[1]])
y <- sapply(1:length(kickoffSplit), function(x){
distance(kickoffSplit[[x]])
})
kickoffSelect <- kickoffData %>%
dplyr::select(touchback, epa, yardline_100, kickoff_out_of_bounds)
kickoffSelect <- kickoffSelect %>%
mutate(year = years, month = months)
kickoffSelect <- kickoffSelect %>%
mutate(seasonYear = ifelse(month > 3, year, year - 1))
z <- kickoffSelect %>%
mutate(dist = y) %>%
filter(((yardline_100 == 35 & seasonYear >= 2011) | (yardline_100 == 30 & seasonYear < 2011)) & kickoff_out_of_bounds
== 0) %>%
dplyr::select(-c(yardline_100, kickoff_out_of_bounds, year, month))
z$dist = as.numeric(z$dist)
## Warning: NAs introduced by coercion
z <- na.omit(z)
z$dist <- as.numeric(z$dist)
kickoffClean <- z %>%
mutate(touchback = ifelse(touchback == 1, "Touchback", "No Touchback"), kickoffRules = ifelse(seasonYear >= 2018, "2018-Present", ifelse(seasonYear < 2011, "Before 2011", "2011-2017")), seasonYear = as.factor(seasonYear)) %>%
filter((kickoffRules == "Before 2011" & (dist > 55 & dist < 70)) | (kickoffRules == "2011-2017" & (dist > 60 &
dist < 75))
| (kickoffRules == "2018-Present" & (dist > 60 & dist < 75)))
x <- kickoffClean %>%
group_by(touchback) %>%
summarise(n = n(), epaPerPlay = mean(epa))
## `summarise()` ungrouping output (override with `.groups` argument)
noTouchbackEPA <- kickoffClean %>%
filter(touchback == "No Touchback") %>%
group_by(kickoffRules,dist) %>%
summarise(n = n(), epaPerReturn = mean(epa)) %>%
filter(n >= 30)
## `summarise()` regrouping output by 'kickoffRules' (override with `.groups` argument)
ggfig <- ggplot(noTouchbackEPA, aes(dist, epaPerReturn, color = kickoffRules)) + geom_smooth(se = FALSE)
ggplotly(ggfig)
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'