I need to arrange the output as such: arrange(desc(PPM), desc(Wins), desc(GSM), GAM)

but I am having trouble with the placement. Any ideas?

CODE BELOW

Thanks!

#Function

EPL_Standings <- function(date, season){

options(dplyr.summarise.inform = FALSE)

#Data Frames

s2021 <- read_csv("http://www.football-data.co.uk/mmz4281/2021/E0.csv")

s2021$Season <- factor("2020/21")

s1920 <- read_csv("http://www.football-data.co.uk/mmz4281/1920/E0.csv")

s1920$Season <- factor("2019/20")

#Select the columns needed for assignment

EPL_data <- bind_rows(s2021, s1920, s1819) %>% select(Date,HomeTeam,AwayTeam,FTHG,FTAG,FTR)%>%

#Use lubridate to change the date to read Month/Day/Year

mutate(Date = dmy(Date))%>%

filter(Date <= mdy(date))

#Make a column called 'Team'

Home <- EPL_data%>%

select(Date,Team = HomeTeam,FTHG,FTAG,FTR)%>%

mutate(HomeAway = 'Home')

Away <- EPL_data%>%

select(Date,Team = AwayTeam,FTHG,FTAG,FTR)%>%

mutate(HomeAway = 'Away')

#Join these sets

team_data <- bind_rows(Home, Away)%>%

arrange(Team, desc(Date))%>%

#Check to see if the team won or lost

mutate(Home_Win = ifelse (HomeAway == 'Home' & FTHG > FTAG, 1, 0),

Away_Win = ifelse (HomeAway == 'Away' & FTAG > FTHG, 1, 0),

Home_Tie = ifelse (HomeAway == 'Home' & FTHG == FTAG, 1, 0),

Away_Tie = ifelse (HomeAway == 'Away' & FTAG == FTHG, 1, 0),

Home_Loss = ifelse (HomeAway == 'Home' & FTHG < FTAG, 1, 0),

Away_Loss = ifelse (HomeAway == 'Away' & FTAG < FTHG, 1, 0),

#Goals Scored for Home and Away

Goals_Scored = ifelse (HomeAway == 'Home', FTHG, FTAG),

#Goals Allowed = Goals by the away team

Goals_Allowed = ifelse (HomeAway == 'Home', FTAG, FTHG),

#Returns 1 for win, 0 for loss

Wins1 = ifelse (Home_Win == 1 | Away_Win == 1, 1, 0),

#Returns 1 for loss, 0 for win

Losses1 = ifelse (Home_Loss == 1 | Away_Loss == 1, 1, 0),

#Returns 1 if tie (Draw), 0 if not

Tie = ifelse (Home_Tie == 1 | Away_Tie == 1, 1, 0),)%>%

#Grouping by team

group_by(Team)%>%

#Using variables created above to calculate the following:

#Wins is the sum of Wins1 created above

summarize(Wins = sum(Wins1),

#Ttl Losses is the sum of Losses1 created above

Losses = sum(Losses1),

#Ttl Draws is the sum of Tie(s) created above

Draws = sum(Tie),

#Ttl Wins by the Home team created above

HomeWins = sum(Home_Win),

#Ttl Losses by the Home Team created above

HomeLosses = sum(Home_Loss),

#Ttl Draws for the Home Team by using Home_Tie created above

HomeDraws = sum(Home_Tie),

#Ttl wins by the Away team from Away_Win created above

AwayWins = sum(Away_Win),

#Ttl Losses by the Away team from the Away_Loss created above

AwayLosses = sum(Away_Loss),

#Ttl Draws by the Away team from Away_tie created above

AwayDraws = sum(Away_Tie),

#Ttl Goals Scored for the season using Goals_Scored created above

GS = sum(Goals_Scored),

#Ttl Goals Allowed (scored by the other team by using Goals_Allowed created above)

GA = sum(Goals_Allowed),

#Calculated Points by multiplying the wins by 3, and then adding the total ties (each worth 1 point)

Points = (3 * sum(Wins1)) + sum(Tie),

#Getting the matches played by each team

MatchesPlayed = n(),

#The following helps us get the team's record over the last 10 games

Last10Wins = sum(Wins1[1:10]),

Last10Losses = sum(Losses1[1:10]),

Last10Draws = sum(Tie[1:10]),

min_win = which.min(Wins1 == 1),

min_losses = which.min(Losses1 == 1),

min_draws = which.min(Tie == 1),

length = min(c(min_win, min_losses, min_draws)[c(min_win, min_losses, min_draws) > 1]))%>%

#Using the above variables to calculate PPM, PTPCT, GSM, and GAM and creating columns for each new variable

#Points per match = Points divided by MatchesPlayed

mutate(PPM = Points / MatchesPlayed,

#Point percentage calculated by dividing Points by 3 X MatchesPlayed

PtPct = Points / (3 * MatchesPlayed),

#Goals scored per match is Goals Scored (GS) divided by MatchesPlayed

GSM = GS / MatchesPlayed,

#Goals allowed per match is Goals Allowed (GA) divided by MatchesPlayed

GAM = GA / MatchesPlayed,

#Create Record Column

Record = str_c(Wins, "-",Losses, "-", Draws),

#Create HomeRec Column for the home team's record

HomeRec = str_c(HomeWins, "-", HomeLosses, "-", HomeDraws),

#Create AwayRec Column for the away team's record

AwayRec = str_c(AwayWins, "-", AwayLosses, "-", AwayDraws),

#Last 10 Games Played for each team to find the last 10 wins, losses, draws; (W, L, D)

Last10 = str_c(Last10Wins, "-", Last10Losses, "-", Last10Draws),

#Find the latest Streak

streak_type = ifelse(min_win == 1, 'W', 'D'),

streak_type = ifelse(min_losses == 1, 'L', streak_type),

Streak = str_c(streak_type, length))

#Return only the needed columns

return(team_data %>% select(Team,Record,HomeRec,AwayRec,MatchesPlayed,Points,PPM,PtPct,GS,GSM,GA,GAM,Last10,Streak))

}

EPL_Standings("11/30/2018","2018/19")