#' Create Point sums by player
#'
#'
#' @export
#'
#usecase <- "FTA"
#FTA_Rules <- scoring_rules[[paste0(usecase)]]
CalculatePoints <- function(inputData = c("pbp_agg_season","pbp_agg_week",
"pbp_avg_season", "pbp_avg_week")){
sum_col <- c("completions", "attempts", "interceptions", "passing_yards", "passing_tds",
"passing_2pt_conversions", "passing_incomp", "passing_ypg", "pass_300_yds", "pass_350_yds", "pass_400_yds",
"carries", "rushing_yards", "rushing_tds", "rushing_fumbles_lost",
"rushing_2pt_conversions", "rush_100_yds", "rush_150_yds", "rush_200_yds",
"receptions", "receiving_yards", "receiving_tds", "receiving_2pt_conversions",
"rec_100_yds", "rec_150_yds", "rec_200_yds","sacks")
out = inputData %>% mutate(
completions = scoring_rules[[paste0(usecase)]][["pass"]][["pass_comp"]] * completions,
attempts = scoring_rules[[paste0(usecase)]][["pass"]][["pass_att"]] * attempts,
passing_ypg = (scoring_rules[[paste0(usecase)]][["pass"]][["pass_ypg"]] * ((passing_yards/games)-100)),
passing_incomp = scoring_rules[[paste0(usecase)]][["pass"]][["pass_inc"]] * (attempts - completions),
pass_300_yds = case_when(passing_yards >=300 & passing_yards <350 ~
scoring_rules[["FTA"]][["pass"]][["pass_300_yds"]],
TRUE ~ 0),
pass_350_yds = case_when(passing_yards >=350 & passing_yards <400 ~
scoring_rules[["FTA"]][["pass"]][["pass_350_yds"]],
TRUE ~ 0),
pass_400_yds = case_when(passing_yards >=400 ~ scoring_rules[["FTA"]][["pass"]][["pass_400_yds"]],
TRUE ~ 0),
passing_yards = (scoring_rules[[paste0(usecase)]][["pass"]][["pass_yds"]] * passing_yards),
passing_tds = scoring_rules[[paste0(usecase)]][["pass"]][["pass_tds"]] * passing_tds,
interceptions = scoring_rules[[paste0(usecase)]][["pass"]][["pass_int"]] * interceptions,
carries = scoring_rules[[paste0(usecase)]][["rush"]][["rush_att"]] * carries,
rush_100_yds = case_when(rushing_yards >=300 & rushing_yards <350 ~
scoring_rules[["FTA"]][["rush"]][["rush_100_yds"]],
TRUE ~ 0),
rush_150_yds = case_when(rushing_yards >=350 & rushing_yards <400 ~
scoring_rules[["FTA"]][["rush"]][["rush_150_yds"]],
TRUE ~ 0),
rush_200_yds = case_when(rushing_yards >=400 ~ scoring_rules[["FTA"]][["rush"]][["rush_200_yds"]],
TRUE ~ 0),
rushing_yards = scoring_rules[[paste0(usecase)]][["rush"]][["rush_yds"]] * rushing_yards,
rushing_tds = scoring_rules[[paste0(usecase)]][["rush"]][["rush_tds"]] * rushing_tds,
receptions = scoring_rules[[paste0(usecase)]][["rec"]][["rec"]] * receptions,
rec_100_yds = case_when(receiving_yards >=300 & receiving_yards <350 ~
scoring_rules[["FTA"]][["rec"]][["rec_100_yds"]],
TRUE ~ 0),
rec_150_yds = case_when(receiving_yards >=350 & receiving_yards <400 ~
scoring_rules[["FTA"]][["rec"]][["rec_150_yds"]],
TRUE ~ 0),
rec_200_yds = case_when(receiving_yards >=400 ~ scoring_rules[["FTA"]][["rec"]][["rec_200_yds"]],
TRUE ~ 0),
receiving_yards = scoring_rules[[paste0(usecase)]][["rec"]][["rec_yds"]] * receiving_yards,
receiving_tds = scoring_rules[[paste0(usecase)]][["rec"]][["rec_tds"]] * receiving_tds,
rushing_fumbles_lost = scoring_rules[[paste0(usecase)]][["misc"]][["fumbles_lost"]] *
rushing_fumbles_lost,
receiving_fumbles_lost = scoring_rules[[paste0(usecase)]][["misc"]][["fumbles_lost"]] *
receiving_fumbles_lost,
sacks = scoring_rules[[paste0(usecase)]][["misc"]][["sacks"]] * sacks,
passing_2pt_conversions = scoring_rules[[paste0(usecase)]][["misc"]][["two_pts"]] *
passing_2pt_conversions,
rushing_2pt_conversions = scoring_rules[[paste0(usecase)]][["misc"]][["two_pts"]] *
rushing_2pt_conversions,
receiving_2pt_conversions = scoring_rules[[paste0(usecase)]][["misc"]][["two_pts"]] *
receiving_2pt_conversions) %>%
relocate(passing_ypg, .before = passing_air_yards)
out$Total_Points <- rowSums(out[ , c(sum_col)], na.rm=TRUE)
out = as_tibble(out)
}
#' Create Point filter to id and total
#'
#'
#' @export
#'
CalculatePointsTotal <- function(){
PointsSum = CalculatePoints(pbp_agg_season)
PointsSum = PointsSum %>% filter(between(season, 2018, 2020)) %>%
select(-c(gsis_id,season, recent_team, team, position)) %>%
group_by(mfl_id, name) %>%
summarise(across(everything(), list(mean))) %>%
mutate_if(is.numeric, round, digits=2)
names(PointsSum) <- names(PointsSum) %>% gsub("_1", "", .)
data.table::setnames(PointsSum, old = 'mfl_id',new = 'id')
PointsSum = PointsSum %>% ungroup() %>% select(c(id ,Total_Points)) %>% as_tibble()
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.