Loading the Initial Data Set

The initial data set is available as a .txt file, and displays a lot of data per player in a small amount of space. In addition to player demographics and pre-tournament statistics, there are also entries for the activity of each round. The player’s opponent, designated by the pair number, as well as letters indicating whether the round was a win, loss, draw, or bide. The cells have pipes and hyphens as boundaries.

library(tidyr)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(stringr)
tournament_orig <- read.csv("https://raw.githubusercontent.com/hillt5/DATA607_Project_1/master/tournamentinfo.txt",header = FALSE, sep = "|", )
head(tournament_orig$V2,30)
##  [1]                                    Player Name                     
##  [3]  USCF ID / Rtg (Pre->Post)                                         
##  [5]  GARY HUA                          15445895 / R: 1794   ->1817     
##  [7]                                    DAKSHESH DARURI                 
##  [9]  14598900 / R: 1553   ->1663                                       
## [11]  ADITYA BAJAJ                      14959604 / R: 1384   ->1640     
## [13]                                    PATRICK H SCHILLING             
## [15]  12616049 / R: 1716   ->1744                                       
## [17]  HANSHI ZUO                        14601533 / R: 1655   ->1690     
## [19]                                    HANSEN SONG                     
## [21]  15055204 / R: 1686   ->1687                                       
## [23]  GARY DEE SWATHELL                 11146376 / R: 1649   ->1673     
## [25]                                    EZEKIEL HOUGHTON                
## [27]  15142253 / R: 1641P17->1657P24                                    
## [29]  STEFANO LEE                       14954524 / R: 1411   ->1564     
## 131 Levels:  ...  ZACHARY JAMES HOUGHTON
class(tournament_orig)
## [1] "data.frame"
names(tournament_orig)
##  [1] "V1"  "V2"  "V3"  "V4"  "V5"  "V6"  "V7"  "V8"  "V9"  "V10" "V11"

After importing the table, it’s clear that much of the formatting in the the original .txt isn’t allowing a neat conversion into a data frame. I ultimately separated the data into columns by separating by pipe or “|” character.

Exploring the First Column

The first column contains all of the hyphens left over from the original .txt, in addition to Pair Number and state initials. I created a new column populated with numbers 1 through 64 and extracted all two-letter entries into a second column for player initials.

library(tidyr)
library(dplyr)
head(tournament_orig$V1,15)
##  [1] -----------------------------------------------------------------------------------------
##  [2]  Pair                                                                                    
##  [3]  Num                                                                                     
##  [4] -----------------------------------------------------------------------------------------
##  [5]     1                                                                                    
##  [6]    ON                                                                                    
##  [7] -----------------------------------------------------------------------------------------
##  [8]     2                                                                                    
##  [9]    MI                                                                                    
## [10] -----------------------------------------------------------------------------------------
## [11]     3                                                                                    
## [12]    MI                                                                                    
## [13] -----------------------------------------------------------------------------------------
## [14]     4                                                                                    
## [15]    MI                                                                                    
## 70 Levels: ----------------------------------------------------------------------------------------- ...
Player_ID <- as.vector(c(1:64))
player_state <- as.vector(str_trim(str_subset(tournament_orig$V1, pattern = "([A-Z])([A-Z])")))
Player_ID
##  [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
## [26] 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
## [51] 51 52 53 54 55 56 57 58 59 60 61 62 63 64
player_state
##  [1] "ON" "MI" "MI" "MI" "MI" "OH" "MI" "MI" "ON" "MI" "MI" "MI" "MI" "MI" "MI"
## [16] "MI" "MI" "MI" "MI" "MI" "ON" "MI" "ON" "MI" "MI" "ON" "MI" "MI" "MI" "ON"
## [31] "MI" "ON" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI"
## [46] "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI"
## [61] "ON" "MI" "MI" "MI"

#Exploring the Second Column

The second column contains a lot of infromation personal to each player, including their name and pre-post tournament score. I started off by separating out all of the names, which conveniently were all capitalized. I also ignored the top columns which were just headers in the original file.

head(tournament_orig$V2)
## [1]                                    Player Name                     
## [3]  USCF ID / Rtg (Pre->Post)                                         
## [5]  GARY HUA                          15445895 / R: 1794   ->1817     
## 131 Levels:  ...  ZACHARY JAMES HOUGHTON
player_name <- str_subset(tournament_orig$V2, pattern = "([A-Z])([A-Z])")
player_name2 <- as.vector(str_trim(player_name[-1]))
print(player_name2)
##  [1] "GARY HUA"                   "DAKSHESH DARURI"           
##  [3] "ADITYA BAJAJ"               "PATRICK H SCHILLING"       
##  [5] "HANSHI ZUO"                 "HANSEN SONG"               
##  [7] "GARY DEE SWATHELL"          "EZEKIEL HOUGHTON"          
##  [9] "STEFANO LEE"                "ANVIT RAO"                 
## [11] "CAMERON WILLIAM MC LEMAN"   "KENNETH J TACK"            
## [13] "TORRANCE HENRY JR"          "BRADLEY SHAW"              
## [15] "ZACHARY JAMES HOUGHTON"     "MIKE NIKITIN"              
## [17] "RONALD GRZEGORCZYK"         "DAVID SUNDEEN"             
## [19] "DIPANKAR ROY"               "JASON ZHENG"               
## [21] "DINH DANG BUI"              "EUGENE L MCCLURE"          
## [23] "ALAN BUI"                   "MICHAEL R ALDRICH"         
## [25] "LOREN SCHWIEBERT"           "MAX ZHU"                   
## [27] "GAURAV GIDWANI"             "SOFIA ADINA STANESCU-BELLU"
## [29] "CHIEDOZIE OKORIE"           "GEORGE AVERY JONES"        
## [31] "RISHI SHETTY"               "JOSHUA PHILIP MATHEWS"     
## [33] "JADE GE"                    "MICHAEL JEFFERY THOMAS"    
## [35] "JOSHUA DAVID LEE"           "SIDDHARTH JHA"             
## [37] "AMIYATOSH PWNANANDAM"       "BRIAN LIU"                 
## [39] "JOEL R HENDON"              "FOREST ZHANG"              
## [41] "KYLE WILLIAM MURPHY"        "JARED GE"                  
## [43] "ROBERT GLEN VASEY"          "JUSTIN D SCHILLING"        
## [45] "DEREK YAN"                  "JACOB ALEXANDER LAVALLEY"  
## [47] "ERIC WRIGHT"                "DANIEL KHAIN"              
## [49] "MICHAEL J MARTIN"           "SHIVAM JHA"                
## [51] "TEJAS AYYAGARI"             "ETHAN GUO"                 
## [53] "JOSE C YBARRA"              "LARRY HODGE"               
## [55] "ALEX KONG"                  "MARISA RICCI"              
## [57] "MICHAEL LU"                 "VIRAJ MOHILE"              
## [59] "SEAN M MC CORMICK"          "JULIA SHEN"                
## [61] "JEZZEL FARKAS"              "ASHWIN BALAJI"             
## [63] "THOMAS JOSEPH HOSMER"       "BEN LI"

Next, I collected the pre-scores from the second column. Since there were several numbers in each entry, including USCF ID#, pre- and post-score, I came up with a regex expression that extracted only the pre-score based around the surrounding “R:” and “->” formatting. I then trimmed off the empty cells and whitespace.

head(tournament_orig$V2,30)
##  [1]                                    Player Name                     
##  [3]  USCF ID / Rtg (Pre->Post)                                         
##  [5]  GARY HUA                          15445895 / R: 1794   ->1817     
##  [7]                                    DAKSHESH DARURI                 
##  [9]  14598900 / R: 1553   ->1663                                       
## [11]  ADITYA BAJAJ                      14959604 / R: 1384   ->1640     
## [13]                                    PATRICK H SCHILLING             
## [15]  12616049 / R: 1716   ->1744                                       
## [17]  HANSHI ZUO                        14601533 / R: 1655   ->1690     
## [19]                                    HANSEN SONG                     
## [21]  15055204 / R: 1686   ->1687                                       
## [23]  GARY DEE SWATHELL                 11146376 / R: 1649   ->1673     
## [25]                                    EZEKIEL HOUGHTON                
## [27]  15142253 / R: 1641P17->1657P24                                    
## [29]  STEFANO LEE                       14954524 / R: 1411   ->1564     
## 131 Levels:  ...  ZACHARY JAMES HOUGHTON
pre_score <- str_extract(tournament_orig$V2, pattern = "R: ([0-9])([0-9]).*->|R:  ([0-9])([0-9]).*->")
pre_score_clean1 <- str_trim(str_extract_all(pre_score, pattern = "([0-9])([0-9])([0-9])+"))
pre_score_clean2 <- as.vector(as.numeric(str_subset(pre_score_clean1, pattern = ".+")))
pre_score_clean2
##  [1] 1794 1553 1384 1716 1655 1686 1649 1641 1411 1365 1712 1663 1666 1610 1220
## [16] 1604 1629 1600 1564 1595 1563 1555 1363 1229 1745 1579 1552 1507 1602 1522
## [31] 1494 1441 1449 1399 1438 1355  980 1423 1436 1348 1403 1332 1283 1199 1242
## [46]  377 1362 1382 1291 1056 1011  935 1393 1270 1186 1153 1092  917  853  967
## [61]  955 1530 1175 1163

Third Column

The third column was pretty straightforward as it only contained the total points.

total_points <- as.vector(as.numeric(str_subset(tournament_orig$V3, pattern = "^([0-9])")))
total_points
##  [1] 6.0 6.0 6.0 5.5 5.5 5.0 5.0 5.0 5.0 5.0 4.5 4.5 4.5 4.5 4.5 4.0 4.0 4.0 4.0
## [20] 4.0 4.0 4.0 4.0 4.0 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.0
## [39] 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 2.5 2.5 2.5 2.5 2.5 2.5 2.0 2.0 2.0 2.0 2.0
## [58] 2.0 2.0 1.5 1.5 1.0 1.0 1.0

The Remaining Columns

The remaining columns contain a lot of different observations of interest, but what I’m interested for the purposes of this project is the opposing player identity. Each remaining column is broken down by rounds 1-7. It’s important that each of the final vectors contains 64 entries for each of the 64 players. Some of the players had bide rounds or were disqualfied, in which case there is no opposing player data available.

My strategy for extracting all of the opponent information was subsetting each column by filtering again for only entries containing numerical data. This left several columns containing only whitespace, which correspond to the bide or round after disqualification. It was important to maintain these, so I assiged the corresponding white space to “NA”. I then removed any non-numeric characters from the player identity cells.

tail(tournament_orig$V4,15)
##  [1] L  33 W           L  32 B           W  55 B           L   2 W          
## [13] L  22 B          
## 67 Levels:          1   B     D  10 D  11 D  15 D  16 D  19 D  38 ... W  64
round_1_values <- str_subset(tournament_orig$V4, pattern = "     |([0-9]$)")
round_1_plus_na <- str_replace_all(round_1_values, "     ", "NA")
round_1_clean <- as.vector(as.numeric(str_trim(str_replace_all(round_1_plus_na, "W|L|D", ""))))
## Warning in as.vector(as.numeric(str_trim(str_replace_all(round_1_plus_na, : NAs
## introduced by coercion
round_1_clean
##  [1] 39 63  8 23 45 34 57  3 25 16 38 42 36 54 19 10 48 47 15 40 43 64  4 28  9
## [26] 49 51 24 50 52 58 61 60  6 46 13 NA 11  1 20 59 12 21 NA  5 35 18 17 26 29
## [51] 27 30 NA 14 62 NA  7 31 41 33 32 55  2 22
length(round_1_clean)
## [1] 64

I repeated the same technique for the six remaining columns.

tail(tournament_orig$V5)
## [1] L  48 B           D  30 W          
## 69 Levels:          2   B     D   4 D   6 D  22 D  28 D  29 D  30 ... W  63
round_2_values <- str_subset(tournament_orig$V5, pattern = "     |([0-9]$)")
round_2_plus_na <- str_replace_all(round_2_values, "     ", "NA")
round_2_clean <- as.vector(as.numeric(str_trim(str_replace_all(round_2_plus_na, "W|L|D", ""))))
## Warning in as.vector(as.numeric(str_trim(str_replace_all(round_2_plus_na, : NAs
## introduced by coercion
round_2_clean
##  [1] 21 58 61 28 37 29 46 32 18 19 56 33 27 44 16 15 41  9 10 49  1 52 43 47 53
## [26] 40 13  4  6 64 55  8 12 60 38 57  5 35 54 26 17 50 23 14 51  7 24 63 20 42
## [51] 45 22 25 39 31 11 36  2 NA 34  3 NA 48 30
tail(tournament_orig$V6)
## [1] D  49 W           L  31 W          
## 68 Levels:          3   B     D   5 D  12 D  45 D  49 D  60 D  63 ... W  64
round_3_values <- str_subset(tournament_orig$V6, pattern = "     |([0-9]$)")
round_3_plus_na <- str_replace_all(round_3_values, "     ", "NA")
round_3_clean <- as.vector(as.numeric(str_trim(str_replace_all(round_3_plus_na, "W|L|D", ""))))
## Warning in as.vector(as.numeric(str_trim(str_replace_all(round_3_plus_na, : NAs
## introduced by coercion
round_3_clean
##  [1] 18  4 25  2 12 11 13 14 59 55  6  5  7  8 30 NA 26  1 52 23 47 28 20 43  3
## [26] 17 46 22 38 15 64 44 50 37 56 51 34 29 40 39 58 57 24 32 60 27 21 NA 63 33
## [51] 36 19 NA 61 10 35 42 41  9 45 54 NA 49 31
tail(tournament_orig$V7)
## [1] L  43 B           D  49 B          
## 69 Levels:          4   B     D   5 D  13 D  19 D  28 D  33 D  36 ... W  63
round_4_values <- str_subset(tournament_orig$V7, pattern = "     |([0-9]$)")
round_4_plus_na <- str_replace_all(round_4_values, "     ", "NA")
round_4_clean <- as.vector(as.numeric(str_trim(str_replace_all(round_4_plus_na, "W|L|D", ""))))
## Warning in as.vector(as.numeric(str_trim(str_replace_all(round_4_plus_na, : NAs
## introduced by coercion
round_4_clean
##  [1] 14 17 21 26 13 35 11  9  8 31  7 38  5  1 22 39  2 32 28 41  3 15 58 25 24
## [26]  4 37 19 34 55 10 18 36 29  6 33 27 12 16 59 20 60 63 53 56 50 61 52 64 46
## [51] 57 48 44 NA 30 45 51 23 40 42 47 NA 43 49
tail(tournament_orig$V8)
## [1] L  45 B           L  46 W          
## 61 Levels:          5   B     D   4 D   5 D   6 D  10 D  14 D  25 ... X
round_5_values <- str_subset(tournament_orig$V8, pattern = "     |([0-9]$)")
round_5_plus_na <- str_replace_all(round_5_values, "     ", "NA")
round_5_clean <- as.vector(as.numeric(str_trim(str_replace_all(round_5_plus_na, "W|L|D", ""))))
## Warning in as.vector(as.numeric(str_trim(str_replace_all(round_5_plus_na, : NAs
## introduced by coercion
round_5_clean
##  [1]  7 16 11  5  4 10  1 47 26  6  3 NA 33 27 54  2 23 19 18 28 40 NA 17 60 34
## [26]  9 14 20 52 31 30 51 13 25 57 NA NA NA 44 21 NA 61 59 39 63 64  8 NA 58 NA
## [51] 32 29 NA 15 NA NA 35 49 43 24 42 NA 45 46
tail(tournament_orig$V9)
## [1] H                 L  42 B          
## 66 Levels:          6   B     D   1 D  12 D  26 D  32 D  35 D  45 ... W  64
round_6_values <- str_subset(tournament_orig$V9, pattern = "     |([0-9]$)")
round_6_plus_na <- str_replace_all(round_6_values, "     ", "NA")
round_6_clean <- as.vector(as.numeric(str_trim(str_replace_all(round_6_plus_na, "W|L|D", ""))))
## Warning in as.vector(as.numeric(str_trim(str_replace_all(round_6_plus_na, : NAs
## introduced by coercion
round_6_clean
##  [1] 12 20 13 19 14 27  9 28  7 25 34  1  3  5 33 36 22 38  4  2 39 17 37 44 10
## [26] 32  6  8 48 61 50 26 15 11 52 16 23 18 21 56 NA 64 46 24 55 43 51 29 NA 31
## [51] 47 35 57 59 45 40 53 NA 54 NA 30 NA NA 42
tail(tournament_orig$V10)
## [1] U                 L  54 B          
## 61 Levels:          7   B     D   1 D   4 D  28 D  36 L   2 L   3 ... W  64
round_7_values <- str_subset(tournament_orig$V10, pattern = "     |([0-9]$)")
round_7_plus_na <- str_replace_all(round_7_values, "     ", "NA")
round_7_clean <- as.vector(as.numeric(str_trim(str_replace_all(round_7_plus_na, "W|L|D", ""))))
## Warning in as.vector(as.numeric(str_trim(str_replace_all(round_7_plus_na, : NAs
## introduced by coercion
round_7_clean
##  [1]  4  7 12  1 17 21  2 19 20 18 26  3 32 31 38 NA  5 10  8  9  6 40 46 39 47
## [26] 11 NA 36 NA 50 14 13 51 52 48 28 61 15 24 22 NA 56 55 59 58 23 25 35 NA 30
## [51] 33 34 NA 64 43 42 NA 45 44 NA 37 NA NA 54

Collecting all of the Preiliminary Observations in a New Data Frame

To help myself visually confirm that all of the observations matched up, I created a preiliminary dataframe with all of the columns so far.

tournament_clean <- data.frame(Player_ID, player_name2, player_state, total_points, pre_score_clean2, round_1_clean, round_2_clean, round_3_clean, round_4_clean, round_5_clean, round_6_clean, round_7_clean)

names(tournament_clean) <- c("Player ID", "Players Name", "Players State/Province", "Total Number of Points", "Players Pre-Rating", "Round 1 Opp.", "Round 2 Opp.", "Round 3 Opp.", "Round 4 Opp.", "Round 5 Opp.", "Round 6 Opp.", "Round 7 Opp.")

Calculating the Average Opponent Rating

As part of the project, the only value not immediately available is the average opponent rating, which is used by taking the pre-ratings of all opponents faced by a player in this seven-round tournament. To calculate this, I used the “Round # Opponent” columns to point to the corresponding player’s pre-tournament score. I then calcualted the average using the entries of all seven columns, including “na.rm = TRUE”, to not count the “NA” columns towards the denominator of calculating the average.

Unfortunately, at this point my lack of experience in R started showing. Ideally, I would have written something like a ‘for’ loop to iterate through all 64 players in a single bit of code. Instead, I used some brute force find + replace, then copy + paste to do all 64 lines individually. This didn’t take as long as expected as all I had to do was generate the first 10 iterations, then use find + replace to replace “[1]…[9]” with “[10]…[19]”, etc. This method would be wholly unacceptable for larger datasets. There’s also a very real possibility for human error and typographical errors contributing to inaccurate calculations.

avg_oppo_rating <- as.vector(1:64) 

avg_oppo_rating[1] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[1]]], pre_score_clean2[Player_ID[round_2_clean[1]]], pre_score_clean2[Player_ID[round_3_clean[1]]], pre_score_clean2[Player_ID[round_4_clean[1]]], pre_score_clean2[Player_ID[round_5_clean[1]]], pre_score_clean2[Player_ID[round_6_clean[1]]], pre_score_clean2[Player_ID[round_7_clean[1]]]), na.rm = TRUE) 

  

avg_oppo_rating[2] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[2]]], pre_score_clean2[Player_ID[round_2_clean[2]]], pre_score_clean2[Player_ID[round_3_clean[2]]], pre_score_clean2[Player_ID[round_4_clean[2]]], pre_score_clean2[Player_ID[round_5_clean[2]]], pre_score_clean2[Player_ID[round_6_clean[2]]], pre_score_clean2[Player_ID[round_7_clean[2]]]), na.rm = TRUE)                                                                                                

avg_oppo_rating[3] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[3]]], pre_score_clean2[Player_ID[round_2_clean[3]]], pre_score_clean2[Player_ID[round_3_clean[3]]], pre_score_clean2[Player_ID[round_4_clean[3]]], pre_score_clean2[Player_ID[round_5_clean[3]]], pre_score_clean2[Player_ID[round_6_clean[3]]], pre_score_clean2[Player_ID[round_7_clean[3]]]), na.rm = TRUE)  

  

avg_oppo_rating[4] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[4]]], pre_score_clean2[Player_ID[round_2_clean[4]]], pre_score_clean2[Player_ID[round_3_clean[4]]], pre_score_clean2[Player_ID[round_4_clean[4]]], pre_score_clean2[Player_ID[round_5_clean[4]]], pre_score_clean2[Player_ID[round_6_clean[4]]], pre_score_clean2[Player_ID[round_7_clean[4]]]), na.rm = TRUE)  

                                                                                               

avg_oppo_rating[5] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[5]]], pre_score_clean2[Player_ID[round_2_clean[5]]], pre_score_clean2[Player_ID[round_3_clean[5]]], pre_score_clean2[Player_ID[round_4_clean[5]]], pre_score_clean2[Player_ID[round_5_clean[5]]], pre_score_clean2[Player_ID[round_6_clean[5]]], pre_score_clean2[Player_ID[round_7_clean[5]]]), na.rm = TRUE)  

  

avg_oppo_rating[6] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[6]]], pre_score_clean2[Player_ID[round_2_clean[6]]], pre_score_clean2[Player_ID[round_3_clean[6]]], pre_score_clean2[Player_ID[round_4_clean[6]]], pre_score_clean2[Player_ID[round_5_clean[6]]], pre_score_clean2[Player_ID[round_6_clean[6]]], pre_score_clean2[Player_ID[round_7_clean[6]]]), na.rm = TRUE)  

  

avg_oppo_rating[7] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[7]]], pre_score_clean2[Player_ID[round_2_clean[7]]], pre_score_clean2[Player_ID[round_3_clean[7]]], pre_score_clean2[Player_ID[round_4_clean[7]]], pre_score_clean2[Player_ID[round_5_clean[7]]], pre_score_clean2[Player_ID[round_6_clean[7]]], pre_score_clean2[Player_ID[round_7_clean[7]]]), na.rm = TRUE)  

  

avg_oppo_rating[8] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[8]]], pre_score_clean2[Player_ID[round_2_clean[8]]], pre_score_clean2[Player_ID[round_3_clean[8]]], pre_score_clean2[Player_ID[round_4_clean[8]]], pre_score_clean2[Player_ID[round_5_clean[8]]], pre_score_clean2[Player_ID[round_6_clean[8]]], pre_score_clean2[Player_ID[round_7_clean[8]]]), na.rm = TRUE)  

  

avg_oppo_rating[9] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[9]]], pre_score_clean2[Player_ID[round_2_clean[9]]], pre_score_clean2[Player_ID[round_3_clean[9]]], pre_score_clean2[Player_ID[round_4_clean[9]]], pre_score_clean2[Player_ID[round_5_clean[9]]], pre_score_clean2[Player_ID[round_6_clean[9]]], pre_score_clean2[Player_ID[round_7_clean[9]]]), na.rm = TRUE)  

  

avg_oppo_rating[10] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[10]]], pre_score_clean2[Player_ID[round_2_clean[10]]], pre_score_clean2[Player_ID[round_3_clean[10]]], pre_score_clean2[Player_ID[round_4_clean[10]]], pre_score_clean2[Player_ID[round_5_clean[10]]], pre_score_clean2[Player_ID[round_6_clean[10]]], pre_score_clean2[Player_ID[round_7_clean[10]]]), na.rm = TRUE)  

  

avg_oppo_rating[11] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[11]]], pre_score_clean2[Player_ID[round_2_clean[11]]], pre_score_clean2[Player_ID[round_3_clean[11]]], pre_score_clean2[Player_ID[round_4_clean[11]]], pre_score_clean2[Player_ID[round_5_clean[11]]], pre_score_clean2[Player_ID[round_6_clean[11]]], pre_score_clean2[Player_ID[round_7_clean[11]]]), na.rm = TRUE)  

  

avg_oppo_rating[12] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[12]]], pre_score_clean2[Player_ID[round_2_clean[12]]], pre_score_clean2[Player_ID[round_3_clean[12]]], pre_score_clean2[Player_ID[round_4_clean[12]]], pre_score_clean2[Player_ID[round_5_clean[12]]], pre_score_clean2[Player_ID[round_6_clean[12]]], pre_score_clean2[Player_ID[round_7_clean[12]]]), na.rm = TRUE)                                                                                                 

  

avg_oppo_rating[13] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[13]]], pre_score_clean2[Player_ID[round_2_clean[13]]], pre_score_clean2[Player_ID[round_3_clean[13]]], pre_score_clean2[Player_ID[round_4_clean[13]]], pre_score_clean2[Player_ID[round_5_clean[13]]], pre_score_clean2[Player_ID[round_6_clean[13]]], pre_score_clean2[Player_ID[round_7_clean[13]]]), na.rm = TRUE)   

  

avg_oppo_rating[14] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[14]]], pre_score_clean2[Player_ID[round_2_clean[14]]], pre_score_clean2[Player_ID[round_3_clean[14]]], pre_score_clean2[Player_ID[round_4_clean[14]]], pre_score_clean2[Player_ID[round_5_clean[14]]], pre_score_clean2[Player_ID[round_6_clean[14]]], pre_score_clean2[Player_ID[round_7_clean[14]]]), na.rm = TRUE)                                                         

avg_oppo_rating[15] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[15]]], pre_score_clean2[Player_ID[round_2_clean[15]]], pre_score_clean2[Player_ID[round_3_clean[15]]], pre_score_clean2[Player_ID[round_4_clean[15]]], pre_score_clean2[Player_ID[round_5_clean[15]]], pre_score_clean2[Player_ID[round_6_clean[15]]], pre_score_clean2[Player_ID[round_7_clean[15]]]), na.rm = TRUE)   

  

avg_oppo_rating[16] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[16]]], pre_score_clean2[Player_ID[round_2_clean[16]]], pre_score_clean2[Player_ID[round_3_clean[16]]], pre_score_clean2[Player_ID[round_4_clean[16]]], pre_score_clean2[Player_ID[round_5_clean[16]]], pre_score_clean2[Player_ID[round_6_clean[16]]], pre_score_clean2[Player_ID[round_7_clean[16]]]), na.rm = TRUE)   

  

avg_oppo_rating[17] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[17]]], pre_score_clean2[Player_ID[round_2_clean[17]]], pre_score_clean2[Player_ID[round_3_clean[17]]], pre_score_clean2[Player_ID[round_4_clean[17]]], pre_score_clean2[Player_ID[round_5_clean[17]]], pre_score_clean2[Player_ID[round_6_clean[17]]], pre_score_clean2[Player_ID[round_7_clean[17]]]), na.rm = TRUE)   

  

avg_oppo_rating[18] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[18]]], pre_score_clean2[Player_ID[round_2_clean[18]]], pre_score_clean2[Player_ID[round_3_clean[18]]], pre_score_clean2[Player_ID[round_4_clean[18]]], pre_score_clean2[Player_ID[round_5_clean[18]]], pre_score_clean2[Player_ID[round_6_clean[18]]], pre_score_clean2[Player_ID[round_7_clean[18]]]), na.rm = TRUE)   

  

avg_oppo_rating[19] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[19]]], pre_score_clean2[Player_ID[round_2_clean[19]]], pre_score_clean2[Player_ID[round_3_clean[19]]], pre_score_clean2[Player_ID[round_4_clean[19]]], pre_score_clean2[Player_ID[round_5_clean[19]]], pre_score_clean2[Player_ID[round_6_clean[19]]], pre_score_clean2[Player_ID[round_7_clean[19]]]), na.rm = TRUE)   

  

avg_oppo_rating[20] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[20]]], pre_score_clean2[Player_ID[round_2_clean[20]]], pre_score_clean2[Player_ID[round_3_clean[20]]], pre_score_clean2[Player_ID[round_4_clean[20]]], pre_score_clean2[Player_ID[round_5_clean[20]]], pre_score_clean2[Player_ID[round_6_clean[20]]], pre_score_clean2[Player_ID[round_7_clean[20]]]), na.rm = TRUE)  

  

avg_oppo_rating[21] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[21]]], pre_score_clean2[Player_ID[round_2_clean[21]]], pre_score_clean2[Player_ID[round_3_clean[21]]], pre_score_clean2[Player_ID[round_4_clean[21]]], pre_score_clean2[Player_ID[round_5_clean[21]]], pre_score_clean2[Player_ID[round_6_clean[21]]], pre_score_clean2[Player_ID[round_7_clean[21]]]), na.rm = TRUE)  

  

avg_oppo_rating[22] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[22]]], pre_score_clean2[Player_ID[round_2_clean[22]]], pre_score_clean2[Player_ID[round_3_clean[22]]], pre_score_clean2[Player_ID[round_4_clean[22]]], pre_score_clean2[Player_ID[round_5_clean[22]]], pre_score_clean2[Player_ID[round_6_clean[22]]], pre_score_clean2[Player_ID[round_7_clean[22]]]), na.rm = TRUE)                                                                                                 

  

avg_oppo_rating[23] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[23]]], pre_score_clean2[Player_ID[round_2_clean[23]]], pre_score_clean2[Player_ID[round_3_clean[23]]], pre_score_clean2[Player_ID[round_4_clean[23]]], pre_score_clean2[Player_ID[round_5_clean[23]]], pre_score_clean2[Player_ID[round_6_clean[23]]], pre_score_clean2[Player_ID[round_7_clean[23]]]), na.rm = TRUE)   

  

avg_oppo_rating[24] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[24]]], pre_score_clean2[Player_ID[round_2_clean[24]]], pre_score_clean2[Player_ID[round_3_clean[24]]], pre_score_clean2[Player_ID[round_4_clean[24]]], pre_score_clean2[Player_ID[round_5_clean[24]]], pre_score_clean2[Player_ID[round_6_clean[24]]], pre_score_clean2[Player_ID[round_7_clean[24]]]), na.rm = TRUE)                                                         

avg_oppo_rating[25] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[25]]], pre_score_clean2[Player_ID[round_2_clean[25]]], pre_score_clean2[Player_ID[round_3_clean[25]]], pre_score_clean2[Player_ID[round_4_clean[25]]], pre_score_clean2[Player_ID[round_5_clean[25]]], pre_score_clean2[Player_ID[round_6_clean[25]]], pre_score_clean2[Player_ID[round_7_clean[25]]]), na.rm = TRUE)   

  

avg_oppo_rating[26] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[26]]], pre_score_clean2[Player_ID[round_2_clean[26]]], pre_score_clean2[Player_ID[round_3_clean[26]]], pre_score_clean2[Player_ID[round_4_clean[26]]], pre_score_clean2[Player_ID[round_5_clean[26]]], pre_score_clean2[Player_ID[round_6_clean[26]]], pre_score_clean2[Player_ID[round_7_clean[26]]]), na.rm = TRUE)   

  

avg_oppo_rating[27] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[27]]], pre_score_clean2[Player_ID[round_2_clean[27]]], pre_score_clean2[Player_ID[round_3_clean[27]]], pre_score_clean2[Player_ID[round_4_clean[27]]], pre_score_clean2[Player_ID[round_5_clean[27]]], pre_score_clean2[Player_ID[round_6_clean[27]]], pre_score_clean2[Player_ID[round_7_clean[27]]]), na.rm = TRUE)   

  

avg_oppo_rating[28] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[28]]], pre_score_clean2[Player_ID[round_2_clean[28]]], pre_score_clean2[Player_ID[round_3_clean[28]]], pre_score_clean2[Player_ID[round_4_clean[28]]], pre_score_clean2[Player_ID[round_5_clean[28]]], pre_score_clean2[Player_ID[round_6_clean[28]]], pre_score_clean2[Player_ID[round_7_clean[28]]]), na.rm = TRUE)   

  

avg_oppo_rating[29] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[29]]], pre_score_clean2[Player_ID[round_2_clean[29]]], pre_score_clean2[Player_ID[round_3_clean[29]]], pre_score_clean2[Player_ID[round_4_clean[29]]], pre_score_clean2[Player_ID[round_5_clean[29]]], pre_score_clean2[Player_ID[round_6_clean[29]]], pre_score_clean2[Player_ID[round_7_clean[29]]]), na.rm = TRUE)   

  

  avg_oppo_rating[30] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[30]]], pre_score_clean2[Player_ID[round_2_clean[30]]], pre_score_clean2[Player_ID[round_3_clean[30]]], pre_score_clean2[Player_ID[round_4_clean[30]]], pre_score_clean2[Player_ID[round_5_clean[30]]], pre_score_clean2[Player_ID[round_6_clean[30]]], pre_score_clean2[Player_ID[round_7_clean[30]]]), na.rm = TRUE)  

  

avg_oppo_rating[31] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[31]]], pre_score_clean2[Player_ID[round_2_clean[31]]], pre_score_clean2[Player_ID[round_3_clean[31]]], pre_score_clean2[Player_ID[round_4_clean[31]]], pre_score_clean2[Player_ID[round_5_clean[31]]], pre_score_clean2[Player_ID[round_6_clean[31]]], pre_score_clean2[Player_ID[round_7_clean[31]]]), na.rm = TRUE)  

  

avg_oppo_rating[32] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[32]]], pre_score_clean2[Player_ID[round_2_clean[32]]], pre_score_clean2[Player_ID[round_3_clean[32]]], pre_score_clean2[Player_ID[round_4_clean[32]]], pre_score_clean2[Player_ID[round_5_clean[32]]], pre_score_clean2[Player_ID[round_6_clean[32]]], pre_score_clean2[Player_ID[round_7_clean[32]]]), na.rm = TRUE)                                                                                                 

  

avg_oppo_rating[33] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[33]]], pre_score_clean2[Player_ID[round_2_clean[33]]], pre_score_clean2[Player_ID[round_3_clean[33]]], pre_score_clean2[Player_ID[round_4_clean[33]]], pre_score_clean2[Player_ID[round_5_clean[33]]], pre_score_clean2[Player_ID[round_6_clean[33]]], pre_score_clean2[Player_ID[round_7_clean[33]]]), na.rm = TRUE)   

  

avg_oppo_rating[34] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[34]]], pre_score_clean2[Player_ID[round_2_clean[34]]], pre_score_clean2[Player_ID[round_3_clean[34]]], pre_score_clean2[Player_ID[round_4_clean[34]]], pre_score_clean2[Player_ID[round_5_clean[34]]], pre_score_clean2[Player_ID[round_6_clean[34]]], pre_score_clean2[Player_ID[round_7_clean[34]]]), na.rm = TRUE)                                                         

avg_oppo_rating[35] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[35]]], pre_score_clean2[Player_ID[round_2_clean[35]]], pre_score_clean2[Player_ID[round_3_clean[35]]], pre_score_clean2[Player_ID[round_4_clean[35]]], pre_score_clean2[Player_ID[round_5_clean[35]]], pre_score_clean2[Player_ID[round_6_clean[35]]], pre_score_clean2[Player_ID[round_7_clean[35]]]), na.rm = TRUE)   

  

avg_oppo_rating[36] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[36]]], pre_score_clean2[Player_ID[round_2_clean[36]]], pre_score_clean2[Player_ID[round_3_clean[36]]], pre_score_clean2[Player_ID[round_4_clean[36]]], pre_score_clean2[Player_ID[round_5_clean[36]]], pre_score_clean2[Player_ID[round_6_clean[36]]], pre_score_clean2[Player_ID[round_7_clean[36]]]), na.rm = TRUE)   

  

avg_oppo_rating[37] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[37]]], pre_score_clean2[Player_ID[round_2_clean[37]]], pre_score_clean2[Player_ID[round_3_clean[37]]], pre_score_clean2[Player_ID[round_4_clean[37]]], pre_score_clean2[Player_ID[round_5_clean[37]]], pre_score_clean2[Player_ID[round_6_clean[37]]], pre_score_clean2[Player_ID[round_7_clean[37]]]), na.rm = TRUE)   

  

avg_oppo_rating[38] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[38]]], pre_score_clean2[Player_ID[round_2_clean[38]]], pre_score_clean2[Player_ID[round_3_clean[38]]], pre_score_clean2[Player_ID[round_4_clean[38]]], pre_score_clean2[Player_ID[round_5_clean[38]]], pre_score_clean2[Player_ID[round_6_clean[38]]], pre_score_clean2[Player_ID[round_7_clean[38]]]), na.rm = TRUE)   

  

avg_oppo_rating[39] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[39]]], pre_score_clean2[Player_ID[round_2_clean[39]]], pre_score_clean2[Player_ID[round_3_clean[39]]], pre_score_clean2[Player_ID[round_4_clean[39]]], pre_score_clean2[Player_ID[round_5_clean[39]]], pre_score_clean2[Player_ID[round_6_clean[39]]], pre_score_clean2[Player_ID[round_7_clean[39]]]), na.rm = TRUE)   

  

avg_oppo_rating[40] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[40]]], pre_score_clean2[Player_ID[round_2_clean[40]]], pre_score_clean2[Player_ID[round_3_clean[40]]], pre_score_clean2[Player_ID[round_4_clean[40]]], pre_score_clean2[Player_ID[round_5_clean[40]]], pre_score_clean2[Player_ID[round_6_clean[40]]], pre_score_clean2[Player_ID[round_7_clean[40]]]), na.rm = TRUE)  

  

avg_oppo_rating[41] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[41]]], pre_score_clean2[Player_ID[round_2_clean[41]]], pre_score_clean2[Player_ID[round_3_clean[41]]], pre_score_clean2[Player_ID[round_4_clean[41]]], pre_score_clean2[Player_ID[round_5_clean[41]]], pre_score_clean2[Player_ID[round_6_clean[41]]], pre_score_clean2[Player_ID[round_7_clean[41]]]), na.rm = TRUE)  

  

avg_oppo_rating[42] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[42]]], pre_score_clean2[Player_ID[round_2_clean[42]]], pre_score_clean2[Player_ID[round_3_clean[42]]], pre_score_clean2[Player_ID[round_4_clean[42]]], pre_score_clean2[Player_ID[round_5_clean[42]]], pre_score_clean2[Player_ID[round_6_clean[42]]], pre_score_clean2[Player_ID[round_7_clean[42]]]), na.rm = TRUE)                                                                                                 

  

avg_oppo_rating[43] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[43]]], pre_score_clean2[Player_ID[round_2_clean[43]]], pre_score_clean2[Player_ID[round_3_clean[43]]], pre_score_clean2[Player_ID[round_4_clean[43]]], pre_score_clean2[Player_ID[round_5_clean[43]]], pre_score_clean2[Player_ID[round_6_clean[43]]], pre_score_clean2[Player_ID[round_7_clean[43]]]), na.rm = TRUE)   

  

avg_oppo_rating[44] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[44]]], pre_score_clean2[Player_ID[round_2_clean[44]]], pre_score_clean2[Player_ID[round_3_clean[44]]], pre_score_clean2[Player_ID[round_4_clean[44]]], pre_score_clean2[Player_ID[round_5_clean[44]]], pre_score_clean2[Player_ID[round_6_clean[44]]], pre_score_clean2[Player_ID[round_7_clean[44]]]), na.rm = TRUE)                                                         

avg_oppo_rating[45] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[45]]], pre_score_clean2[Player_ID[round_2_clean[45]]], pre_score_clean2[Player_ID[round_3_clean[45]]], pre_score_clean2[Player_ID[round_4_clean[45]]], pre_score_clean2[Player_ID[round_5_clean[45]]], pre_score_clean2[Player_ID[round_6_clean[45]]], pre_score_clean2[Player_ID[round_7_clean[45]]]), na.rm = TRUE)   

  

avg_oppo_rating[46] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[46]]], pre_score_clean2[Player_ID[round_2_clean[46]]], pre_score_clean2[Player_ID[round_3_clean[46]]], pre_score_clean2[Player_ID[round_4_clean[46]]], pre_score_clean2[Player_ID[round_5_clean[46]]], pre_score_clean2[Player_ID[round_6_clean[46]]], pre_score_clean2[Player_ID[round_7_clean[46]]]), na.rm = TRUE)   

  

avg_oppo_rating[47] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[47]]], pre_score_clean2[Player_ID[round_2_clean[47]]], pre_score_clean2[Player_ID[round_3_clean[47]]], pre_score_clean2[Player_ID[round_4_clean[47]]], pre_score_clean2[Player_ID[round_5_clean[47]]], pre_score_clean2[Player_ID[round_6_clean[47]]], pre_score_clean2[Player_ID[round_7_clean[47]]]), na.rm = TRUE)   

  

avg_oppo_rating[48] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[48]]], pre_score_clean2[Player_ID[round_2_clean[48]]], pre_score_clean2[Player_ID[round_3_clean[48]]], pre_score_clean2[Player_ID[round_4_clean[48]]], pre_score_clean2[Player_ID[round_5_clean[48]]], pre_score_clean2[Player_ID[round_6_clean[48]]], pre_score_clean2[Player_ID[round_7_clean[48]]]), na.rm = TRUE)   

  

avg_oppo_rating[49] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[49]]], pre_score_clean2[Player_ID[round_2_clean[49]]], pre_score_clean2[Player_ID[round_3_clean[49]]], pre_score_clean2[Player_ID[round_4_clean[49]]], pre_score_clean2[Player_ID[round_5_clean[49]]], pre_score_clean2[Player_ID[round_6_clean[49]]], pre_score_clean2[Player_ID[round_7_clean[49]]]), na.rm = TRUE)   

  

avg_oppo_rating[50] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[50]]], pre_score_clean2[Player_ID[round_2_clean[50]]], pre_score_clean2[Player_ID[round_3_clean[50]]], pre_score_clean2[Player_ID[round_4_clean[50]]], pre_score_clean2[Player_ID[round_5_clean[50]]], pre_score_clean2[Player_ID[round_6_clean[50]]], pre_score_clean2[Player_ID[round_7_clean[50]]]), na.rm = TRUE)  

  

avg_oppo_rating[51] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[51]]], pre_score_clean2[Player_ID[round_2_clean[51]]], pre_score_clean2[Player_ID[round_3_clean[51]]], pre_score_clean2[Player_ID[round_4_clean[51]]], pre_score_clean2[Player_ID[round_5_clean[51]]], pre_score_clean2[Player_ID[round_6_clean[51]]], pre_score_clean2[Player_ID[round_7_clean[51]]]), na.rm = TRUE)  

  

avg_oppo_rating[52] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[52]]], pre_score_clean2[Player_ID[round_2_clean[52]]], pre_score_clean2[Player_ID[round_3_clean[52]]], pre_score_clean2[Player_ID[round_4_clean[52]]], pre_score_clean2[Player_ID[round_5_clean[52]]], pre_score_clean2[Player_ID[round_6_clean[52]]], pre_score_clean2[Player_ID[round_7_clean[52]]]), na.rm = TRUE)                                                                                               

avg_oppo_rating[53] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[53]]], pre_score_clean2[Player_ID[round_2_clean[53]]], pre_score_clean2[Player_ID[round_3_clean[53]]], pre_score_clean2[Player_ID[round_4_clean[53]]], pre_score_clean2[Player_ID[round_5_clean[53]]], pre_score_clean2[Player_ID[round_6_clean[53]]], pre_score_clean2[Player_ID[round_7_clean[53]]]), na.rm = TRUE)   


avg_oppo_rating[54] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[54]]], pre_score_clean2[Player_ID[round_2_clean[54]]], pre_score_clean2[Player_ID[round_3_clean[54]]], pre_score_clean2[Player_ID[round_4_clean[54]]], pre_score_clean2[Player_ID[round_5_clean[54]]], pre_score_clean2[Player_ID[round_6_clean[54]]], pre_score_clean2[Player_ID[round_7_clean[54]]]), na.rm = TRUE)                                                 
avg_oppo_rating[55] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[55]]], pre_score_clean2[Player_ID[round_2_clean[55]]], pre_score_clean2[Player_ID[round_3_clean[55]]], pre_score_clean2[Player_ID[round_4_clean[55]]], pre_score_clean2[Player_ID[round_5_clean[55]]], pre_score_clean2[Player_ID[round_6_clean[55]]], pre_score_clean2[Player_ID[round_7_clean[55]]]), na.rm = TRUE)   

avg_oppo_rating[56] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[56]]], pre_score_clean2[Player_ID[round_2_clean[56]]], pre_score_clean2[Player_ID[round_3_clean[56]]], pre_score_clean2[Player_ID[round_4_clean[56]]], pre_score_clean2[Player_ID[round_5_clean[56]]], pre_score_clean2[Player_ID[round_6_clean[56]]], pre_score_clean2[Player_ID[round_7_clean[56]]]), na.rm = TRUE)   

avg_oppo_rating[57] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[57]]], pre_score_clean2[Player_ID[round_2_clean[57]]], pre_score_clean2[Player_ID[round_3_clean[57]]], pre_score_clean2[Player_ID[round_4_clean[57]]], pre_score_clean2[Player_ID[round_5_clean[57]]], pre_score_clean2[Player_ID[round_6_clean[57]]], pre_score_clean2[Player_ID[round_7_clean[57]]]), na.rm = TRUE)   

avg_oppo_rating[58] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[58]]], pre_score_clean2[Player_ID[round_2_clean[58]]], pre_score_clean2[Player_ID[round_3_clean[58]]], pre_score_clean2[Player_ID[round_4_clean[58]]], pre_score_clean2[Player_ID[round_5_clean[58]]], pre_score_clean2[Player_ID[round_6_clean[58]]], pre_score_clean2[Player_ID[round_7_clean[58]]]), na.rm = TRUE)   

avg_oppo_rating[59] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[59]]], pre_score_clean2[Player_ID[round_2_clean[59]]], pre_score_clean2[Player_ID[round_3_clean[59]]], pre_score_clean2[Player_ID[round_4_clean[59]]], pre_score_clean2[Player_ID[round_5_clean[59]]], pre_score_clean2[Player_ID[round_6_clean[59]]], pre_score_clean2[Player_ID[round_7_clean[59]]]), na.rm = TRUE)   

avg_oppo_rating[60] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[60]]], pre_score_clean2[Player_ID[round_2_clean[60]]], pre_score_clean2[Player_ID[round_3_clean[60]]], pre_score_clean2[Player_ID[round_4_clean[60]]], pre_score_clean2[Player_ID[round_5_clean[60]]], pre_score_clean2[Player_ID[round_6_clean[60]]], pre_score_clean2[Player_ID[round_7_clean[60]]]), na.rm = TRUE)  

avg_oppo_rating[61] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[61]]], pre_score_clean2[Player_ID[round_2_clean[61]]], pre_score_clean2[Player_ID[round_3_clean[61]]], pre_score_clean2[Player_ID[round_4_clean[61]]], pre_score_clean2[Player_ID[round_5_clean[61]]], pre_score_clean2[Player_ID[round_6_clean[61]]], pre_score_clean2[Player_ID[round_7_clean[61]]]), na.rm = TRUE)  

avg_oppo_rating[62] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[62]]], pre_score_clean2[Player_ID[round_2_clean[62]]], pre_score_clean2[Player_ID[round_3_clean[62]]], pre_score_clean2[Player_ID[round_4_clean[62]]], pre_score_clean2[Player_ID[round_5_clean[62]]], pre_score_clean2[Player_ID[round_6_clean[62]]], pre_score_clean2[Player_ID[round_7_clean[62]]]), na.rm = TRUE)                                                                                                 

avg_oppo_rating[63] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[63]]], pre_score_clean2[Player_ID[round_2_clean[63]]], pre_score_clean2[Player_ID[round_3_clean[63]]], pre_score_clean2[Player_ID[round_4_clean[63]]], pre_score_clean2[Player_ID[round_5_clean[63]]], pre_score_clean2[Player_ID[round_6_clean[63]]], pre_score_clean2[Player_ID[round_7_clean[63]]]), na.rm = TRUE)   

avg_oppo_rating[64] <-mean(c(pre_score_clean2[Player_ID[round_1_clean[64]]], pre_score_clean2[Player_ID[round_2_clean[64]]], pre_score_clean2[Player_ID[round_3_clean[64]]], pre_score_clean2[Player_ID[round_4_clean[64]]], pre_score_clean2[Player_ID[round_5_clean[64]]], pre_score_clean2[Player_ID[round_6_clean[64]]], pre_score_clean2[Player_ID[round_7_clean[64]]]), na.rm = TRUE) 
 
avg_oppo_rating
##  [1] 1605.286 1469.286 1563.571 1573.571 1500.857 1518.714 1372.143 1468.429
##  [9] 1523.143 1554.143 1467.571 1506.167 1497.857 1515.000 1483.857 1385.800
## [17] 1498.571 1480.000 1426.286 1410.857 1470.429 1300.333 1213.857 1357.000
## [25] 1363.286 1506.857 1221.667 1522.143 1313.500 1144.143 1259.857 1378.714
## [33] 1276.857 1375.286 1149.714 1388.167 1384.800 1539.167 1429.571 1390.571
## [41] 1248.500 1149.857 1106.571 1327.000 1152.000 1357.714 1392.000 1355.800
## [49] 1285.800 1296.000 1356.143 1494.571 1345.333 1206.167 1406.000 1414.400
## [57] 1363.000 1391.000 1319.000 1330.200 1327.286 1186.000 1350.200 1263.000

Putting the Final Table Together

I generated the final table with all specified columns, including the newly calculated average column. Finally, I exported the data frame to a new .csv to GitHub.

tournament_final <- data.frame(player_name2, player_state, total_points, pre_score_clean2, avg_oppo_rating)

names(tournament_final) <- c("Player's Name", "Player's State/Province", "Total Number of Points", "Player's Pre-Rating", "Average Pre-Tournament Rating of Opponents")

dir.create("C:\\Users\\Thomas\\Documents\\GitHub\\DATA607_Project_1.csv", showWarnings=FALSE)
write.csv(tournament_final,"C:\\Users\\Thomas\\Documents\\GitHub\\DATA607_Project_1.csv", row.names = TRUE)