Advertisement
fuzzybluerain

World Cup Simulation Code (currently in progress)

Oct 30th, 2022
2,060
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 18.12 KB | Sports | 0 0
  1. match_schedule <- read.csv("C:/Users/clair/Downloads/worldcup2022/match_schedule.csv")
  2.  
  3. teams <- c("ARG", "AUS", "BEL", "BRA", "CAN", "CMR", "CRC", "CRO",
  4.            "DEN", "ECU", "ENG", "ESP", "FRA", "GER", "GHA", "IRN",
  5.            "JPN", "KOR", "KSA", "MAR", "MEX", "NED", "POL", "POR",
  6.            "QAT", "SEN", "SRB", "SUI", "TUN", "URU", "USA", "WAL")
  7.  
  8. xG_matrix <- data.frame(matrix(nrow = 32, ncol = 32))
  9. xG_matrix[is.na(xG_matrix)] <- 1.5 # you'll find a different way to do this later, ok?
  10. rownames(xG_matrix) <- teams
  11. colnames(xG_matrix) <- teams
  12.  
  13. finish_matrix <- data.frame(matrix(nrow = 32, ncol = 9))
  14. finish_matrix[is.na(finish_matrix)] <- 0
  15. rownames(finish_matrix) <- teams
  16. colnames(finish_matrix) <- c("Group 1st", "Group 2nd", "Group 3rd", "Group 4th", "Round of 16", "Quarter Finals", "Semi Finals", "Final", "Champion")
  17.  
  18. grouptotal <- c(1:48)
  19. r16total <- c(49:56)
  20. qftotal <- c(57:60)
  21. sftotal <- c(61,62)
  22. medaltotal <- c(63,64)
  23.  
  24. simcount <- c(1:100)
  25.  
  26. for(count in simcount){
  27.  
  28. ## FIXTURE PREDICTING (GROUP STAGE)
  29. # note to future Claire: *away* teams first
  30. for (val in grouptotal){
  31.   gamenumber <- val
  32.   match_schedule[gamenumber, "HomexG"] <- xG_matrix[match(match_schedule[gamenumber, "Away"],rownames(xG_matrix)),match(match_schedule[gamenumber, "Home"],colnames(xG_matrix))]
  33.   match_schedule[gamenumber, "AwayxG"] <- xG_matrix[match(match_schedule[gamenumber, "Home"],rownames(xG_matrix)),match(match_schedule[gamenumber, "Away"],colnames(xG_matrix))]
  34. }
  35.  
  36. ## FIXTURE SIMULATING (GROUP STAGE)
  37. for (val in grouptotal){
  38.   gamenumber <- val
  39.   match_schedule[gamenumber, "HomeG"] <- rpois(1,match_schedule[gamenumber, "HomexG"])
  40.   match_schedule[gamenumber, "AwayG"] <- rpois(1,match_schedule[gamenumber, "AwayxG"])
  41. }
  42.  
  43. match_schedule$HomeDiff <- match_schedule$HomeG - match_schedule$AwayG; match_schedule$AwayDiff <- match_schedule$AwayG - match_schedule$HomeG
  44. # this comes in handy when we sort the group stages later
  45.  
  46. ## POINT ALLOCATING (GROUP STAGE)
  47. for (val in grouptotal){
  48.   gamenumber <- val
  49.   if (match_schedule[gamenumber, "HomeG"] > match_schedule[gamenumber, "AwayG"]){
  50.     match_schedule[gamenumber, "HomePts"] <- 3
  51.     match_schedule[gamenumber, "AwayPts"] <- 0
  52.     match_schedule[gamenumber, "HomeW"] <- match_schedule[gamenumber, "HomeW"] + 1
  53.     } else if (match_schedule[gamenumber, "HomeG"] < match_schedule[gamenumber, "AwayG"]){
  54.     match_schedule[gamenumber, "HomePts"] <- 0
  55.     match_schedule[gamenumber, "AwayPts"] <- 3
  56.     match_schedule[gamenumber, "AwayW"] <- match_schedule[gamenumber, "AwayW"] + 1
  57.     } else {
  58.     match_schedule[gamenumber, "HomePts"] <- 1
  59.     match_schedule[gamenumber, "AwayPts"] <- 1
  60.     match_schedule[gamenumber, "Draw"] <- match_schedule[gamenumber, "Draw"] + 1
  61.     }
  62. }
  63.  
  64. ## GROUP TABLE GENERATION
  65. groupresults <- array()
  66.  
  67. for (var in c("A", "B", "C", "D", "E", "F", "G", "H")) {
  68.   groupnumber <- var
  69.   table <- match_schedule[match_schedule$Group == var, ]
  70.   table <- subset(table, select = -c(Match, Stage, Group, Date, Venue, HomexG, AwayxG))
  71.   table <- cbind(stack(table[1:2]),stack(table[3:4]),stack(table[5:6]),stack(table[7:8]))
  72.   colnames(table) <- c("Team", NA, "GF", NA, "Pts", NA, "GD", NA)
  73.   table <- subset(table, select = c(Team, GF, Pts, GD))
  74.   table <- table[, c(1, 2, 4, 3)]
  75.   table <- data.frame(c(aggregate(table$GF, list(table$Team), FUN=sum),
  76.                         aggregate(table$GD, list(table$Team), FUN=sum),
  77.                         aggregate(table$Pts, list(table$Team), FUN=sum)))
  78.   colnames(table) <- c("Team", "GF", NA, "GD", NA, "Pts")
  79.   table <- subset(table, select = c(Team, GF, GD, Pts))
  80.   table <- table[with(table, order(-Pts, -GD, -GF)), ]
  81.   groupresults <- append(groupresults, table)
  82. }
  83.  
  84. ## ROUND OF 16 SCHEDULING
  85. match_schedule[49,"Home"] <- groupresults[[ 2]][[1]]; match_schedule[49,"Away"] <- groupresults[[ 6]][[2]]
  86. match_schedule[50,"Home"] <- groupresults[[10]][[1]]; match_schedule[50,"Away"] <- groupresults[[14]][[2]]
  87. match_schedule[51,"Home"] <- groupresults[[ 6]][[1]]; match_schedule[51,"Away"] <- groupresults[[ 2]][[2]]
  88. match_schedule[52,"Home"] <- groupresults[[14]][[1]]; match_schedule[52,"Away"] <- groupresults[[10]][[2]]
  89. match_schedule[53,"Home"] <- groupresults[[18]][[1]]; match_schedule[53,"Away"] <- groupresults[[22]][[2]]
  90. match_schedule[54,"Home"] <- groupresults[[26]][[1]]; match_schedule[54,"Away"] <- groupresults[[30]][[2]]
  91. match_schedule[55,"Home"] <- groupresults[[22]][[1]]; match_schedule[55,"Away"] <- groupresults[[18]][[2]]
  92. match_schedule[56,"Home"] <- groupresults[[30]][[1]]; match_schedule[56,"Away"] <- groupresults[[26]][[2]]
  93.  
  94. ## FIXTURE PREDICTING (KNOCKOUT STAGE)
  95. # note to future Claire: *away* teams first
  96. for (val in r16total){
  97.   gamenumber <- val
  98.   match_schedule[gamenumber, "HomexG"] <- xG_matrix[match(match_schedule[gamenumber, "Away"],rownames(xG_matrix)),match(match_schedule[gamenumber, "Home"],colnames(xG_matrix))]
  99.   match_schedule[gamenumber, "AwayxG"] <- xG_matrix[match(match_schedule[gamenumber, "Home"],rownames(xG_matrix)),match(match_schedule[gamenumber, "Away"],colnames(xG_matrix))]
  100.   match_schedule[gamenumber, "HomeG"] <- rpois(1,match_schedule[gamenumber, "HomexG"])
  101.   match_schedule[gamenumber, "AwayG"] <- rpois(1,match_schedule[gamenumber, "AwayxG"])
  102.   if (match_schedule[gamenumber, "HomeG"] > match_schedule[gamenumber, "AwayG"]){
  103.     match_schedule[gamenumber, "HomePts"] <- 3
  104.     match_schedule[gamenumber, "AwayPts"] <- 0
  105.   } else if (match_schedule[gamenumber, "HomeG"] < match_schedule[gamenumber, "AwayG"]){
  106.     match_schedule[gamenumber, "AwayPts"] <- 3
  107.     match_schedule[gamenumber, "HomePts"] <- 0
  108.   } else {
  109.     match_schedule[gamenumber, "HomeG"] <- match_schedule[gamenumber, "HomeG"] + rpois(1,(match_schedule[gamenumber, "HomexG"])/2)
  110.     match_schedule[gamenumber, "AwayG"] <- match_schedule[gamenumber, "AwayG"] + rpois(1,(match_schedule[gamenumber, "AwayxG"])/2)
  111.     if (match_schedule[gamenumber, "HomeG"] > match_schedule[gamenumber, "AwayG"]){
  112.       match_schedule[gamenumber, "HomePts"] <- 3
  113.       match_schedule[gamenumber, "AwayPts"] <- 0
  114.     } else if (match_schedule[gamenumber, "HomeG"] < match_schedule[gamenumber, "AwayG"]){
  115.       match_schedule[gamenumber, "AwayPts"] <- 3
  116.       match_schedule[gamenumber, "HomePts"] <- 0
  117.     } else {
  118.       penalties <- runif(1)
  119.       if (penalties > 0.5){
  120.         match_schedule[gamenumber, "HomePts"] <- 3
  121.         match_schedule[gamenumber, "AwayPts"] <- 0
  122.       } else {
  123.         match_schedule[gamenumber, "AwayPts"] <- 3
  124.         match_schedule[gamenumber, "HomePts"] <- 0
  125.       }
  126.     }
  127.   }
  128. }
  129.  
  130. ## QUARTER FINAL SCHEDULE
  131. if (match_schedule[49, "HomePts"] == 3){
  132.   match_schedule[57,"Home"] <- match_schedule[49,"Home"]
  133. } else {
  134.   match_schedule[57,"Home"] <- match_schedule[49,"Away"]
  135. }
  136. if (match_schedule[50, "HomePts"] == 3){
  137.   match_schedule[57,"Away"] <- match_schedule[50,"Home"]
  138. } else {
  139.   match_schedule[57,"Away"] <- match_schedule[50,"Away"]
  140. }
  141. if (match_schedule[51, "HomePts"] == 3){
  142.   match_schedule[59,"Home"] <- match_schedule[51,"Home"]
  143. } else {
  144.   match_schedule[59,"Home"] <- match_schedule[51,"Away"]
  145. }
  146. if (match_schedule[52, "HomePts"] == 3){
  147.   match_schedule[59,"Away"] <- match_schedule[52,"Home"]
  148. } else {
  149.   match_schedule[59,"Away"] <- match_schedule[52,"Away"]
  150. }
  151. if (match_schedule[53, "HomePts"] == 3){
  152.   match_schedule[58,"Home"] <- match_schedule[53,"Home"]
  153. } else {
  154.   match_schedule[58,"Home"] <- match_schedule[53,"Away"]
  155. }
  156. if (match_schedule[54, "HomePts"] == 3){
  157.   match_schedule[58,"Away"] <- match_schedule[54,"Home"]
  158. } else {
  159.   match_schedule[58,"Away"] <- match_schedule[54,"Away"]
  160. }
  161. if (match_schedule[55, "HomePts"] == 3){
  162.   match_schedule[60,"Home"] <- match_schedule[55,"Home"]
  163. } else {
  164.   match_schedule[60,"Home"] <- match_schedule[55,"Away"]
  165. }
  166. if (match_schedule[56, "HomePts"] == 3){
  167.   match_schedule[60,"Away"] <- match_schedule[56,"Home"]
  168. } else {
  169.   match_schedule[60,"Away"] <- match_schedule[56,"Away"]
  170. }
  171.  
  172. ## FIXTURE SIMULATING (KNOCKOUT STAGE)
  173. for (val in qftotal){
  174.   gamenumber <- val
  175.   match_schedule[gamenumber, "HomexG"] <- xG_matrix[match(match_schedule[gamenumber, "Away"],rownames(xG_matrix)),match(match_schedule[gamenumber, "Home"],colnames(xG_matrix))]
  176.   match_schedule[gamenumber, "AwayxG"] <- xG_matrix[match(match_schedule[gamenumber, "Home"],rownames(xG_matrix)),match(match_schedule[gamenumber, "Away"],colnames(xG_matrix))]
  177.   match_schedule[gamenumber, "HomeG"] <- rpois(1,match_schedule[gamenumber, "HomexG"])
  178.   match_schedule[gamenumber, "AwayG"] <- rpois(1,match_schedule[gamenumber, "AwayxG"])
  179.   if (match_schedule[gamenumber, "HomeG"] > match_schedule[gamenumber, "AwayG"]){
  180.     match_schedule[gamenumber, "HomePts"] <- 3
  181.     match_schedule[gamenumber, "AwayPts"] <- 0
  182.   } else if (match_schedule[gamenumber, "HomeG"] < match_schedule[gamenumber, "AwayG"]){
  183.     match_schedule[gamenumber, "AwayPts"] <- 3
  184.     match_schedule[gamenumber, "HomePts"] <- 0
  185.   } else {
  186.     match_schedule[gamenumber, "HomeG"] <- match_schedule[gamenumber, "HomeG"] + rpois(1,(match_schedule[gamenumber, "HomexG"])/2)
  187.     match_schedule[gamenumber, "AwayG"] <- match_schedule[gamenumber, "AwayG"] + rpois(1,(match_schedule[gamenumber, "AwayxG"])/2)
  188.     if (match_schedule[gamenumber, "HomeG"] > match_schedule[gamenumber, "AwayG"]){
  189.       match_schedule[gamenumber, "HomePts"] <- 3
  190.       match_schedule[gamenumber, "AwayPts"] <- 0
  191.     } else if (match_schedule[gamenumber, "HomeG"] < match_schedule[gamenumber, "AwayG"]){
  192.       match_schedule[gamenumber, "AwayPts"] <- 3
  193.       match_schedule[gamenumber, "HomePts"] <- 0
  194.     } else {
  195.       penalties <- runif(1)
  196.       if (penalties > 0.5){
  197.         match_schedule[gamenumber, "HomePts"] <- 3
  198.         match_schedule[gamenumber, "AwayPts"] <- 0
  199.       } else {
  200.         match_schedule[gamenumber, "AwayPts"] <- 3
  201.         match_schedule[gamenumber, "HomePts"] <- 0
  202.       }
  203.     }
  204.   }
  205. }
  206.  
  207. ## SEMI FINAL SCHEDULE
  208. if (match_schedule[57, "HomePts"] == 3){
  209.   match_schedule[61,"Home"] <- match_schedule[57,"Home"]
  210. } else {
  211.   match_schedule[61,"Home"] <- match_schedule[57,"Away"]
  212. }
  213. if (match_schedule[58, "HomePts"] == 3){
  214.   match_schedule[61,"Away"] <- match_schedule[58,"Home"]
  215. } else {
  216.   match_schedule[61,"Away"] <- match_schedule[58,"Away"]
  217. }
  218. if (match_schedule[59, "HomePts"] == 3){
  219.   match_schedule[62,"Home"] <- match_schedule[59,"Home"]
  220. } else {
  221.   match_schedule[62,"Home"] <- match_schedule[59,"Away"]
  222. }
  223. if (match_schedule[60, "HomePts"] == 3){
  224.   match_schedule[62,"Away"] <- match_schedule[60,"Home"]
  225. } else {
  226.   match_schedule[62,"Away"] <- match_schedule[60,"Away"]
  227. }
  228.  
  229. ## FIXTURE SIMULATING (KNOCKOUT STAGE)
  230. for (val in sftotal){
  231.   gamenumber <- val
  232.   match_schedule[gamenumber, "HomexG"] <- xG_matrix[match(match_schedule[gamenumber, "Away"],rownames(xG_matrix)),match(match_schedule[gamenumber, "Home"],colnames(xG_matrix))]
  233.   match_schedule[gamenumber, "AwayxG"] <- xG_matrix[match(match_schedule[gamenumber, "Home"],rownames(xG_matrix)),match(match_schedule[gamenumber, "Away"],colnames(xG_matrix))]
  234.   match_schedule[gamenumber, "HomeG"] <- rpois(1,match_schedule[gamenumber, "HomexG"])
  235.   match_schedule[gamenumber, "AwayG"] <- rpois(1,match_schedule[gamenumber, "AwayxG"])
  236.   if (match_schedule[gamenumber, "HomeG"] > match_schedule[gamenumber, "AwayG"]){
  237.     match_schedule[gamenumber, "HomePts"] <- 3
  238.     match_schedule[gamenumber, "AwayPts"] <- 0
  239.   } else if (match_schedule[gamenumber, "HomeG"] < match_schedule[gamenumber, "AwayG"]){
  240.     match_schedule[gamenumber, "AwayPts"] <- 3
  241.     match_schedule[gamenumber, "HomePts"] <- 0
  242.   } else {
  243.     match_schedule[gamenumber, "HomeG"] <- match_schedule[gamenumber, "HomeG"] + rpois(1,(match_schedule[gamenumber, "HomexG"])/2)
  244.     match_schedule[gamenumber, "AwayG"] <- match_schedule[gamenumber, "AwayG"] + rpois(1,(match_schedule[gamenumber, "AwayxG"])/2)
  245.     if (match_schedule[gamenumber, "HomeG"] > match_schedule[gamenumber, "AwayG"]){
  246.       match_schedule[gamenumber, "HomePts"] <- 3
  247.       match_schedule[gamenumber, "AwayPts"] <- 0
  248.     } else if (match_schedule[gamenumber, "HomeG"] < match_schedule[gamenumber, "AwayG"]){
  249.       match_schedule[gamenumber, "AwayPts"] <- 3
  250.       match_schedule[gamenumber, "HomePts"] <- 0
  251.     } else {
  252.       penalties <- runif(1)
  253.       if (penalties > 0.5){
  254.         match_schedule[gamenumber, "HomePts"] <- 3
  255.         match_schedule[gamenumber, "AwayPts"] <- 0
  256.       } else {
  257.         match_schedule[gamenumber, "AwayPts"] <- 3
  258.         match_schedule[gamenumber, "HomePts"] <- 0
  259.       }
  260.     }
  261.   }
  262. }
  263.  
  264. ## MEDAL GAME SCHEDULES
  265. if (match_schedule[61, "HomePts"] == 3){
  266.   match_schedule[64,"Home"] <- match_schedule[61,"Home"]
  267.   match_schedule[63,"Home"] <- match_schedule[61,"Away"]
  268. } else {
  269.   match_schedule[64,"Home"] <- match_schedule[61,"Away"]
  270.   match_schedule[63,"Home"] <- match_schedule[61,"Home"]
  271. }
  272. if (match_schedule[62, "HomePts"] == 3){
  273.   match_schedule[64,"Away"] <- match_schedule[62,"Home"]
  274.   match_schedule[63,"Away"] <- match_schedule[62,"Away"]
  275. } else {
  276.   match_schedule[64,"Away"] <- match_schedule[62,"Away"]
  277.   match_schedule[63,"Away"] <- match_schedule[62,"Home"]
  278. }
  279.  
  280. ## FIXTURE SIMULATING (MEDAL GAMES)
  281. for (val in medaltotal){
  282.   gamenumber <- val
  283.   match_schedule[gamenumber, "HomexG"] <- xG_matrix[match(match_schedule[gamenumber, "Away"],rownames(xG_matrix)),match(match_schedule[gamenumber, "Home"],colnames(xG_matrix))]
  284.   match_schedule[gamenumber, "AwayxG"] <- xG_matrix[match(match_schedule[gamenumber, "Home"],rownames(xG_matrix)),match(match_schedule[gamenumber, "Away"],colnames(xG_matrix))]
  285.   match_schedule[gamenumber, "HomeG"] <- rpois(1,match_schedule[gamenumber, "HomexG"])
  286.   match_schedule[gamenumber, "AwayG"] <- rpois(1,match_schedule[gamenumber, "AwayxG"])
  287.   if (match_schedule[gamenumber, "HomeG"] > match_schedule[gamenumber, "AwayG"]){
  288.     match_schedule[gamenumber, "HomePts"] <- 3
  289.     match_schedule[gamenumber, "AwayPts"] <- 0
  290.   } else if (match_schedule[gamenumber, "HomeG"] < match_schedule[gamenumber, "AwayG"]){
  291.     match_schedule[gamenumber, "AwayPts"] <- 3
  292.     match_schedule[gamenumber, "HomePts"] <- 0
  293.   } else {
  294.     match_schedule[gamenumber, "HomeG"] <- match_schedule[gamenumber, "HomeG"] + rpois(1,(match_schedule[gamenumber, "HomexG"])/2)
  295.     match_schedule[gamenumber, "AwayG"] <- match_schedule[gamenumber, "AwayG"] + rpois(1,(match_schedule[gamenumber, "AwayxG"])/2)
  296.     if (match_schedule[gamenumber, "HomeG"] > match_schedule[gamenumber, "AwayG"]){
  297.       match_schedule[gamenumber, "HomePts"] <- 3
  298.       match_schedule[gamenumber, "AwayPts"] <- 0
  299.     } else if (match_schedule[gamenumber, "HomeG"] < match_schedule[gamenumber, "AwayG"]){
  300.       match_schedule[gamenumber, "AwayPts"] <- 3
  301.       match_schedule[gamenumber, "HomePts"] <- 0
  302.     } else {
  303.       penalties <- runif(1)
  304.       if (penalties > 0.5){
  305.         match_schedule[gamenumber, "HomePts"] <- 3
  306.         match_schedule[gamenumber, "AwayPts"] <- 0
  307.       } else {
  308.         match_schedule[gamenumber, "AwayPts"] <- 3
  309.         match_schedule[gamenumber, "HomePts"] <- 0
  310.       }
  311.     }
  312.   }
  313. }
  314.  
  315. # CALCULATION OF TOTAL RESULTS
  316. for (var in teams){
  317.   trigramme <- var
  318.   poscheck <- c(groupresults[[ 2]][[1]],groupresults[[ 6]][[1]],groupresults[[10]][[1]],groupresults[[14]][[1]],
  319.                 groupresults[[18]][[1]],groupresults[[22]][[1]],groupresults[[26]][[1]],groupresults[[30]][[1]])
  320.   if (trigramme %in% poscheck == TRUE){
  321.     finish_matrix[trigramme, "Group 1st"] <- finish_matrix[trigramme, "Group 1st"] + 1
  322.   }
  323.   poscheck <- c(groupresults[[ 2]][[2]],groupresults[[ 6]][[2]],groupresults[[10]][[2]],groupresults[[14]][[2]],
  324.                 groupresults[[18]][[2]],groupresults[[22]][[2]],groupresults[[26]][[2]],groupresults[[30]][[2]])
  325.   if (trigramme %in% poscheck == TRUE){
  326.     finish_matrix[trigramme, "Group 2nd"] <- finish_matrix[trigramme, "Group 2nd"] + 1
  327.   }
  328.   poscheck <- c(groupresults[[ 2]][[3]],groupresults[[ 6]][[3]],groupresults[[10]][[3]],groupresults[[14]][[3]],
  329.                 groupresults[[18]][[3]],groupresults[[22]][[3]],groupresults[[26]][[3]],groupresults[[30]][[3]])
  330.   if (trigramme %in% poscheck == TRUE){
  331.     finish_matrix[trigramme, "Group 3rd"] <- finish_matrix[trigramme, "Group 3rd"] + 1
  332.   }
  333.   poscheck <- c(groupresults[[ 2]][[4]],groupresults[[ 6]][[4]],groupresults[[10]][[4]],groupresults[[14]][[4]],
  334.                 groupresults[[18]][[4]],groupresults[[22]][[4]],groupresults[[26]][[4]],groupresults[[30]][[4]])
  335.   if (trigramme %in% poscheck == TRUE){
  336.     finish_matrix[trigramme, "Group 4th"] <- finish_matrix[trigramme, "Group 4th"] + 1
  337.   }
  338.   poscheck <- c(match_schedule[49, "Home"], match_schedule[49, "Away"], match_schedule[50, "Home"], match_schedule[50, "Away"],
  339.                 match_schedule[51, "Home"], match_schedule[51, "Away"], match_schedule[52, "Home"], match_schedule[52, "Away"],
  340.                 match_schedule[53, "Home"], match_schedule[53, "Away"], match_schedule[54, "Home"], match_schedule[54, "Away"],
  341.                 match_schedule[55, "Home"], match_schedule[55, "Away"], match_schedule[56, "Home"], match_schedule[56, "Away"])
  342.   if (trigramme %in% poscheck == TRUE){
  343.     finish_matrix[trigramme, "Round of 16"] <- finish_matrix[trigramme, "Round of 16"] + 1
  344.   }
  345.   poscheck <- c(match_schedule[57, "Home"], match_schedule[57, "Away"], match_schedule[58, "Home"], match_schedule[58, "Away"],
  346.                 match_schedule[59, "Home"], match_schedule[59, "Away"], match_schedule[60, "Home"], match_schedule[60, "Away"])
  347.   if (trigramme %in% poscheck == TRUE){
  348.     finish_matrix[trigramme, "Quarter Finals"] <- finish_matrix[trigramme, "Quarter Finals"] + 1
  349.   }
  350.   poscheck <- c(match_schedule[61, "Home"], match_schedule[61, "Away"], match_schedule[62, "Home"], match_schedule[62, "Away"])
  351.   if (trigramme %in% poscheck == TRUE){
  352.     finish_matrix[trigramme, "Semi Finals"] <- finish_matrix[trigramme, "Semi Finals"] + 1
  353.   }
  354.   poscheck <- c(match_schedule[64, "Home"], match_schedule[64, "Away"])
  355.   if (trigramme %in% poscheck == TRUE){
  356.     finish_matrix[trigramme, "Final"] <- finish_matrix[trigramme, "Final"] + 1
  357.   }
  358.   if (match_schedule[64, "Home"] == trigramme & match_schedule[64, "HomePts"] == 3 | match_schedule[64, "Away"] == trigramme & match_schedule[64, "AwayPts"] == 3){
  359.     finish_matrix[trigramme, "Champion"] <- finish_matrix[trigramme, "Champion"] + 1
  360.   }
  361. }
  362. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement