TPD-InternationalFootballRe.../Server/SummaryStatistics.R
2019-06-15 00:31:16 +02:00

98 lines
2.6 KiB
R

#
# Summary statistics
#
# Sum
goalsScored <- function(matches, team) {
home_goals <- matches %>%
filter(home_team == team) %>%
select(home_score) %>% sum()
away_goals <- matches %>%
filter(away_team == team) %>%
select(away_score) %>% sum()
goals_scored <- tribble(
~home_goals, ~away_goals, ~overall,
home_goals, away_goals, home_goals + away_goals
)
return(goals_scored)
}
goalsLost <- function(matches, team) {
home_goals <- matches %>%
filter(home_team != team) %>%
select(home_score) %>% sum()
away_goals <- matches %>%
filter(away_team != team) %>%
select(away_score) %>% sum()
goals_lost <- tribble(
~home_goals, ~away_goals, ~overall,
home_goals, away_goals, home_goals + away_goals
)
return(goals_lost)
}
matchesNumber <- function(matches, team) {
home_matches <- matches %>%
filter(home_team == team) %>% nrow()
away_matches <- matches %>%
filter(away_team == team) %>% nrow()
matches_number <- tribble(
~home_matches, ~away_matches, ~overall,
home_matches, away_matches, home_matches + away_matches
)
return(matches_number)
}
# Mean
avgGoalsScored <- function(matches, team) {
goals_scored <- goalsScored(matches, team)
matches_number <- matchesNumber(matches, team)
avg_goals_scored <- tribble(
~home_goals_avg, ~away_goals_avg, ~overall_avg,
goals_scored$home_goals / matches_number$home_matches,
goals_scored$away_goals / matches_number$away_matches,
goals_scored$overall / matches_number$overall
)
return(avg_goals_scored)
}
avgGoalsLost <- function(matches, team) {
goals_lost <- goalsLost(matches, team)
matches_number <- matchesNumber(matches, team)
avg_goals_lost <- tribble(
~home_goals_avg, ~away_goals_avg, ~overall_avg,
goals_lost$home_goals / matches_number$home_matches,
goals_lost$away_goals / matches_number$away_matches,
goals_lost$overall / matches_number$overall
)
return(avg_goals_lost)
}
# Summary
goalsOverallSummary <- function(matches, team) {
scored <- goalsScored(matches, team)
scoredAvg <- avgGoalsScored(matches, team)
lost <- goalsLost(matches, team)
lostAvg <- avgGoalsLost(matches, team)
goalsOverall <- data.frame(
Home = c(scored$home_goals, lost$home_goals, scoredAvg$home_goals_avg, lostAvg$home_goals_avg),
Away = c(scored$away_goals, lost$away_goals, scoredAvg$away_goals_avg, lostAvg$away_goals_avg),
Overall = c(scored$overall, lost$overall, scoredAvg$overall_avg, lostAvg$overall_avg),
stringsAsFactors = FALSE
)
row.names(goalsOverall) <- c("Scored","Lost", "Scored Avg", "Lost Avg")
return(goalsOverall)
}