Load packages

library(tidyverse)

Overview / Introduction

For this project, we have received a textfile with chess tournament results in an unusual format. The purpose of this project is to create an R markdown file that generates a CSV file with Player Name, Player State, Total Number of Points, Player’s Pre-Rating, and Average Pre Chess Rating of Opponents.

The structure of the file essentially varies by row number, with the first row being a “divider” row with no information (e.g. ——). Information is found on both the 2nd and 3rd row (or, in other words, row number mod 2 = 0 or row number mod 3 = 0). The 2nd row contains the player’s tournament number ID, name, total points, and performance against specified opponents over a maximum of 7 rounds. The 3rd row contains the player’s state, USCF ID,pre-tournament rating, post-tournament rating, norm performance level achieved at the tournament, and whether they started White or Black against an opponent (whose tournament ID number was specified in the previous row).

Only certain information from the table is relevant for this exercise. Irrelevant information includes any round that did not end in Win, Lose, or Draw, USCF ID, post-tournament rating, norm performance level, and whether the player started White or Black. Ratings denoted as provisional ratings “P” were taken simply as the pre-tournament rating with “P” and subsequent numbers ignored.

Import and separate data

The first step in this project is to read in the textfile and separate the data, as explained in the introduction. First, I will import the text file:

tournamentinfo <- readLines("C:\\Users\\Kim\\Documents\\Data607\\tournamentinfo.txt", warn = FALSE)
tournamentinfo
##   [1] "-----------------------------------------------------------------------------------------" 
##   [2] " Pair | Player Name                     |Total|Round|Round|Round|Round|Round|Round|Round| "
##   [3] " Num  | USCF ID / Rtg (Pre->Post)       | Pts |  1  |  2  |  3  |  4  |  5  |  6  |  7  | "
##   [4] "-----------------------------------------------------------------------------------------" 
##   [5] "    1 | GARY HUA                        |6.0  |W  39|W  21|W  18|W  14|W   7|D  12|D   4|" 
##   [6] "   ON | 15445895 / R: 1794   ->1817     |N:2  |W    |B    |W    |B    |W    |B    |W    |" 
##   [7] "-----------------------------------------------------------------------------------------" 
##   [8] "    2 | DAKSHESH DARURI                 |6.0  |W  63|W  58|L   4|W  17|W  16|W  20|W   7|" 
##   [9] "   MI | 14598900 / R: 1553   ->1663     |N:2  |B    |W    |B    |W    |B    |W    |B    |" 
##  [10] "-----------------------------------------------------------------------------------------" 
##  [11] "    3 | ADITYA BAJAJ                    |6.0  |L   8|W  61|W  25|W  21|W  11|W  13|W  12|" 
##  [12] "   MI | 14959604 / R: 1384   ->1640     |N:2  |W    |B    |W    |B    |W    |B    |W    |" 
##  [13] "-----------------------------------------------------------------------------------------" 
##  [14] "    4 | PATRICK H SCHILLING             |5.5  |W  23|D  28|W   2|W  26|D   5|W  19|D   1|" 
##  [15] "   MI | 12616049 / R: 1716   ->1744     |N:2  |W    |B    |W    |B    |W    |B    |B    |" 
##  [16] "-----------------------------------------------------------------------------------------" 
##  [17] "    5 | HANSHI ZUO                      |5.5  |W  45|W  37|D  12|D  13|D   4|W  14|W  17|" 
##  [18] "   MI | 14601533 / R: 1655   ->1690     |N:2  |B    |W    |B    |W    |B    |W    |B    |" 
##  [19] "-----------------------------------------------------------------------------------------" 
##  [20] "    6 | HANSEN SONG                     |5.0  |W  34|D  29|L  11|W  35|D  10|W  27|W  21|" 
##  [21] "   OH | 15055204 / R: 1686   ->1687     |N:3  |W    |B    |W    |B    |B    |W    |B    |" 
##  [22] "-----------------------------------------------------------------------------------------" 
##  [23] "    7 | GARY DEE SWATHELL               |5.0  |W  57|W  46|W  13|W  11|L   1|W   9|L   2|" 
##  [24] "   MI | 11146376 / R: 1649   ->1673     |N:3  |W    |B    |W    |B    |B    |W    |W    |" 
##  [25] "-----------------------------------------------------------------------------------------" 
##  [26] "    8 | EZEKIEL HOUGHTON                |5.0  |W   3|W  32|L  14|L   9|W  47|W  28|W  19|" 
##  [27] "   MI | 15142253 / R: 1641P17->1657P24  |N:3  |B    |W    |B    |W    |B    |W    |W    |" 
##  [28] "-----------------------------------------------------------------------------------------" 
##  [29] "    9 | STEFANO LEE                     |5.0  |W  25|L  18|W  59|W   8|W  26|L   7|W  20|" 
##  [30] "   ON | 14954524 / R: 1411   ->1564     |N:2  |W    |B    |W    |B    |W    |B    |B    |" 
##  [31] "-----------------------------------------------------------------------------------------" 
##  [32] "   10 | ANVIT RAO                       |5.0  |D  16|L  19|W  55|W  31|D   6|W  25|W  18|" 
##  [33] "   MI | 14150362 / R: 1365   ->1544     |N:3  |W    |W    |B    |B    |W    |B    |W    |" 
##  [34] "-----------------------------------------------------------------------------------------" 
##  [35] "   11 | CAMERON WILLIAM MC LEMAN        |4.5  |D  38|W  56|W   6|L   7|L   3|W  34|W  26|" 
##  [36] "   MI | 12581589 / R: 1712   ->1696     |N:3  |B    |W    |B    |W    |B    |W    |B    |" 
##  [37] "-----------------------------------------------------------------------------------------" 
##  [38] "   12 | KENNETH J TACK                  |4.5  |W  42|W  33|D   5|W  38|H    |D   1|L   3|" 
##  [39] "   MI | 12681257 / R: 1663   ->1670     |N:3  |W    |B    |W    |B    |     |W    |B    |" 
##  [40] "-----------------------------------------------------------------------------------------" 
##  [41] "   13 | TORRANCE HENRY JR               |4.5  |W  36|W  27|L   7|D   5|W  33|L   3|W  32|" 
##  [42] "   MI | 15082995 / R: 1666   ->1662     |N:3  |B    |W    |B    |B    |W    |W    |B    |" 
##  [43] "-----------------------------------------------------------------------------------------" 
##  [44] "   14 | BRADLEY SHAW                    |4.5  |W  54|W  44|W   8|L   1|D  27|L   5|W  31|" 
##  [45] "   MI | 10131499 / R: 1610   ->1618     |N:3  |W    |B    |W    |W    |B    |B    |W    |" 
##  [46] "-----------------------------------------------------------------------------------------" 
##  [47] "   15 | ZACHARY JAMES HOUGHTON          |4.5  |D  19|L  16|W  30|L  22|W  54|W  33|W  38|" 
##  [48] "   MI | 15619130 / R: 1220P13->1416P20  |N:3  |B    |B    |W    |W    |B    |B    |W    |" 
##  [49] "-----------------------------------------------------------------------------------------" 
##  [50] "   16 | MIKE NIKITIN                    |4.0  |D  10|W  15|H    |W  39|L   2|W  36|U    |" 
##  [51] "   MI | 10295068 / R: 1604   ->1613     |N:3  |B    |W    |     |B    |W    |B    |     |" 
##  [52] "-----------------------------------------------------------------------------------------" 
##  [53] "   17 | RONALD GRZEGORCZYK              |4.0  |W  48|W  41|L  26|L   2|W  23|W  22|L   5|" 
##  [54] "   MI | 10297702 / R: 1629   ->1610     |N:3  |W    |B    |W    |B    |W    |B    |W    |" 
##  [55] "-----------------------------------------------------------------------------------------" 
##  [56] "   18 | DAVID SUNDEEN                   |4.0  |W  47|W   9|L   1|W  32|L  19|W  38|L  10|" 
##  [57] "   MI | 11342094 / R: 1600   ->1600     |N:3  |B    |W    |B    |W    |B    |W    |B    |" 
##  [58] "-----------------------------------------------------------------------------------------" 
##  [59] "   19 | DIPANKAR ROY                    |4.0  |D  15|W  10|W  52|D  28|W  18|L   4|L   8|" 
##  [60] "   MI | 14862333 / R: 1564   ->1570     |N:3  |W    |B    |W    |B    |W    |W    |B    |" 
##  [61] "-----------------------------------------------------------------------------------------" 
##  [62] "   20 | JASON ZHENG                     |4.0  |L  40|W  49|W  23|W  41|W  28|L   2|L   9|" 
##  [63] "   MI | 14529060 / R: 1595   ->1569     |N:4  |W    |B    |W    |B    |W    |B    |W    |" 
##  [64] "-----------------------------------------------------------------------------------------" 
##  [65] "   21 | DINH DANG BUI                   |4.0  |W  43|L   1|W  47|L   3|W  40|W  39|L   6|" 
##  [66] "   ON | 15495066 / R: 1563P22->1562     |N:3  |B    |W    |B    |W    |W    |B    |W    |" 
##  [67] "-----------------------------------------------------------------------------------------" 
##  [68] "   22 | EUGENE L MCCLURE                |4.0  |W  64|D  52|L  28|W  15|H    |L  17|W  40|" 
##  [69] "   MI | 12405534 / R: 1555   ->1529     |N:4  |W    |B    |W    |B    |     |W    |B    |" 
##  [70] "-----------------------------------------------------------------------------------------" 
##  [71] "   23 | ALAN BUI                        |4.0  |L   4|W  43|L  20|W  58|L  17|W  37|W  46|" 
##  [72] "   ON | 15030142 / R: 1363   ->1371     |     |B    |W    |B    |W    |B    |W    |B    |" 
##  [73] "-----------------------------------------------------------------------------------------" 
##  [74] "   24 | MICHAEL R ALDRICH               |4.0  |L  28|L  47|W  43|L  25|W  60|W  44|W  39|" 
##  [75] "   MI | 13469010 / R: 1229   ->1300     |N:4  |B    |W    |B    |B    |W    |W    |B    |" 
##  [76] "-----------------------------------------------------------------------------------------" 
##  [77] "   25 | LOREN SCHWIEBERT                |3.5  |L   9|W  53|L   3|W  24|D  34|L  10|W  47|" 
##  [78] "   MI | 12486656 / R: 1745   ->1681     |N:4  |B    |W    |B    |W    |B    |W    |B    |" 
##  [79] "-----------------------------------------------------------------------------------------" 
##  [80] "   26 | MAX ZHU                         |3.5  |W  49|W  40|W  17|L   4|L   9|D  32|L  11|" 
##  [81] "   ON | 15131520 / R: 1579   ->1564     |N:4  |B    |W    |B    |W    |B    |W    |W    |" 
##  [82] "-----------------------------------------------------------------------------------------" 
##  [83] "   27 | GAURAV GIDWANI                  |3.5  |W  51|L  13|W  46|W  37|D  14|L   6|U    |" 
##  [84] "   MI | 14476567 / R: 1552   ->1539     |N:4  |W    |B    |W    |B    |W    |B    |     |" 
##  [85] "-----------------------------------------------------------------------------------------" 
##  [86] "   28 | SOFIA ADINA STANESCU-BELLU      |3.5  |W  24|D   4|W  22|D  19|L  20|L   8|D  36|" 
##  [87] "   MI | 14882954 / R: 1507   ->1513     |N:3  |W    |W    |B    |W    |B    |B    |W    |" 
##  [88] "-----------------------------------------------------------------------------------------" 
##  [89] "   29 | CHIEDOZIE OKORIE                |3.5  |W  50|D   6|L  38|L  34|W  52|W  48|U    |" 
##  [90] "   MI | 15323285 / R: 1602P6 ->1508P12  |N:4  |B    |W    |B    |W    |W    |B    |     |" 
##  [91] "-----------------------------------------------------------------------------------------" 
##  [92] "   30 | GEORGE AVERY JONES              |3.5  |L  52|D  64|L  15|W  55|L  31|W  61|W  50|" 
##  [93] "   ON | 12577178 / R: 1522   ->1444     |     |W    |B    |B    |W    |W    |B    |B    |" 
##  [94] "-----------------------------------------------------------------------------------------" 
##  [95] "   31 | RISHI SHETTY                    |3.5  |L  58|D  55|W  64|L  10|W  30|W  50|L  14|" 
##  [96] "   MI | 15131618 / R: 1494   ->1444     |     |B    |W    |B    |W    |B    |W    |B    |" 
##  [97] "-----------------------------------------------------------------------------------------" 
##  [98] "   32 | JOSHUA PHILIP MATHEWS           |3.5  |W  61|L   8|W  44|L  18|W  51|D  26|L  13|" 
##  [99] "   ON | 14073750 / R: 1441   ->1433     |N:4  |W    |B    |W    |B    |W    |B    |W    |" 
## [100] "-----------------------------------------------------------------------------------------" 
## [101] "   33 | JADE GE                         |3.5  |W  60|L  12|W  50|D  36|L  13|L  15|W  51|" 
## [102] "   MI | 14691842 / R: 1449   ->1421     |     |B    |W    |B    |W    |B    |W    |B    |" 
## [103] "-----------------------------------------------------------------------------------------" 
## [104] "   34 | MICHAEL JEFFERY THOMAS          |3.5  |L   6|W  60|L  37|W  29|D  25|L  11|W  52|" 
## [105] "   MI | 15051807 / R: 1399   ->1400     |     |B    |W    |B    |B    |W    |B    |W    |" 
## [106] "-----------------------------------------------------------------------------------------" 
## [107] "   35 | JOSHUA DAVID LEE                |3.5  |L  46|L  38|W  56|L   6|W  57|D  52|W  48|" 
## [108] "   MI | 14601397 / R: 1438   ->1392     |     |W    |W    |B    |W    |B    |B    |W    |" 
## [109] "-----------------------------------------------------------------------------------------" 
## [110] "   36 | SIDDHARTH JHA                   |3.5  |L  13|W  57|W  51|D  33|H    |L  16|D  28|" 
## [111] "   MI | 14773163 / R: 1355   ->1367     |N:4  |W    |B    |W    |B    |     |W    |B    |" 
## [112] "-----------------------------------------------------------------------------------------" 
## [113] "   37 | AMIYATOSH PWNANANDAM            |3.5  |B    |L   5|W  34|L  27|H    |L  23|W  61|" 
## [114] "   MI | 15489571 / R:  980P12->1077P17  |     |     |B    |W    |W    |     |B    |W    |" 
## [115] "-----------------------------------------------------------------------------------------" 
## [116] "   38 | BRIAN LIU                       |3.0  |D  11|W  35|W  29|L  12|H    |L  18|L  15|" 
## [117] "   MI | 15108523 / R: 1423   ->1439     |N:4  |W    |B    |W    |W    |     |B    |B    |" 
## [118] "-----------------------------------------------------------------------------------------" 
## [119] "   39 | JOEL R HENDON                   |3.0  |L   1|W  54|W  40|L  16|W  44|L  21|L  24|" 
## [120] "   MI | 12923035 / R: 1436P23->1413     |N:4  |B    |W    |B    |W    |B    |W    |W    |" 
## [121] "-----------------------------------------------------------------------------------------" 
## [122] "   40 | FOREST ZHANG                    |3.0  |W  20|L  26|L  39|W  59|L  21|W  56|L  22|" 
## [123] "   MI | 14892710 / R: 1348   ->1346     |     |B    |B    |W    |W    |B    |W    |W    |" 
## [124] "-----------------------------------------------------------------------------------------" 
## [125] "   41 | KYLE WILLIAM MURPHY             |3.0  |W  59|L  17|W  58|L  20|X    |U    |U    |" 
## [126] "   MI | 15761443 / R: 1403P5 ->1341P9   |     |B    |W    |B    |W    |     |     |     |" 
## [127] "-----------------------------------------------------------------------------------------" 
## [128] "   42 | JARED GE                        |3.0  |L  12|L  50|L  57|D  60|D  61|W  64|W  56|" 
## [129] "   MI | 14462326 / R: 1332   ->1256     |     |B    |W    |B    |B    |W    |W    |B    |" 
## [130] "-----------------------------------------------------------------------------------------" 
## [131] "   43 | ROBERT GLEN VASEY               |3.0  |L  21|L  23|L  24|W  63|W  59|L  46|W  55|" 
## [132] "   MI | 14101068 / R: 1283   ->1244     |     |W    |B    |W    |W    |B    |B    |W    |" 
## [133] "-----------------------------------------------------------------------------------------" 
## [134] "   44 | JUSTIN D SCHILLING              |3.0  |B    |L  14|L  32|W  53|L  39|L  24|W  59|" 
## [135] "   MI | 15323504 / R: 1199   ->1199     |     |     |W    |B    |B    |W    |B    |W    |" 
## [136] "-----------------------------------------------------------------------------------------" 
## [137] "   45 | DEREK YAN                       |3.0  |L   5|L  51|D  60|L  56|W  63|D  55|W  58|" 
## [138] "   MI | 15372807 / R: 1242   ->1191     |     |W    |B    |W    |B    |W    |B    |W    |" 
## [139] "-----------------------------------------------------------------------------------------" 
## [140] "   46 | JACOB ALEXANDER LAVALLEY        |3.0  |W  35|L   7|L  27|L  50|W  64|W  43|L  23|" 
## [141] "   MI | 15490981 / R:  377P3 ->1076P10  |     |B    |W    |B    |W    |B    |W    |W    |" 
## [142] "-----------------------------------------------------------------------------------------" 
## [143] "   47 | ERIC WRIGHT                     |2.5  |L  18|W  24|L  21|W  61|L   8|D  51|L  25|" 
## [144] "   MI | 12533115 / R: 1362   ->1341     |     |W    |B    |W    |B    |W    |B    |W    |" 
## [145] "-----------------------------------------------------------------------------------------" 
## [146] "   48 | DANIEL KHAIN                    |2.5  |L  17|W  63|H    |D  52|H    |L  29|L  35|" 
## [147] "   MI | 14369165 / R: 1382   ->1335     |     |B    |W    |     |B    |     |W    |B    |" 
## [148] "-----------------------------------------------------------------------------------------" 
## [149] "   49 | MICHAEL J MARTIN                |2.5  |L  26|L  20|D  63|D  64|W  58|H    |U    |" 
## [150] "   MI | 12531685 / R: 1291P12->1259P17  |     |W    |W    |B    |W    |B    |     |     |" 
## [151] "-----------------------------------------------------------------------------------------" 
## [152] "   50 | SHIVAM JHA                      |2.5  |L  29|W  42|L  33|W  46|H    |L  31|L  30|" 
## [153] "   MI | 14773178 / R: 1056   ->1111     |     |W    |B    |W    |B    |     |B    |W    |" 
## [154] "-----------------------------------------------------------------------------------------" 
## [155] "   51 | TEJAS AYYAGARI                  |2.5  |L  27|W  45|L  36|W  57|L  32|D  47|L  33|" 
## [156] "   MI | 15205474 / R: 1011   ->1097     |     |B    |W    |B    |W    |B    |W    |W    |" 
## [157] "-----------------------------------------------------------------------------------------" 
## [158] "   52 | ETHAN GUO                       |2.5  |W  30|D  22|L  19|D  48|L  29|D  35|L  34|" 
## [159] "   MI | 14918803 / R:  935   ->1092     |N:4  |B    |W    |B    |W    |B    |W    |B    |" 
## [160] "-----------------------------------------------------------------------------------------" 
## [161] "   53 | JOSE C YBARRA                   |2.0  |H    |L  25|H    |L  44|U    |W  57|U    |" 
## [162] "   MI | 12578849 / R: 1393   ->1359     |     |     |B    |     |W    |     |W    |     |" 
## [163] "-----------------------------------------------------------------------------------------" 
## [164] "   54 | LARRY HODGE                     |2.0  |L  14|L  39|L  61|B    |L  15|L  59|W  64|" 
## [165] "   MI | 12836773 / R: 1270   ->1200     |     |B    |B    |W    |     |W    |B    |W    |" 
## [166] "-----------------------------------------------------------------------------------------" 
## [167] "   55 | ALEX KONG                       |2.0  |L  62|D  31|L  10|L  30|B    |D  45|L  43|" 
## [168] "   MI | 15412571 / R: 1186   ->1163     |     |W    |B    |W    |B    |     |W    |B    |" 
## [169] "-----------------------------------------------------------------------------------------" 
## [170] "   56 | MARISA RICCI                    |2.0  |H    |L  11|L  35|W  45|H    |L  40|L  42|" 
## [171] "   MI | 14679887 / R: 1153   ->1140     |     |     |B    |W    |W    |     |B    |W    |" 
## [172] "-----------------------------------------------------------------------------------------" 
## [173] "   57 | MICHAEL LU                      |2.0  |L   7|L  36|W  42|L  51|L  35|L  53|B    |" 
## [174] "   MI | 15113330 / R: 1092   ->1079     |     |B    |W    |W    |B    |W    |B    |     |" 
## [175] "-----------------------------------------------------------------------------------------" 
## [176] "   58 | VIRAJ MOHILE                    |2.0  |W  31|L   2|L  41|L  23|L  49|B    |L  45|" 
## [177] "   MI | 14700365 / R:  917   -> 941     |     |W    |B    |W    |B    |W    |     |B    |" 
## [178] "-----------------------------------------------------------------------------------------" 
## [179] "   59 | SEAN M MC CORMICK               |2.0  |L  41|B    |L   9|L  40|L  43|W  54|L  44|" 
## [180] "   MI | 12841036 / R:  853   -> 878     |     |W    |     |B    |B    |W    |W    |B    |" 
## [181] "-----------------------------------------------------------------------------------------" 
## [182] "   60 | JULIA SHEN                      |1.5  |L  33|L  34|D  45|D  42|L  24|H    |U    |" 
## [183] "   MI | 14579262 / R:  967   -> 984     |     |W    |B    |B    |W    |B    |     |     |" 
## [184] "-----------------------------------------------------------------------------------------" 
## [185] "   61 | JEZZEL FARKAS                   |1.5  |L  32|L   3|W  54|L  47|D  42|L  30|L  37|" 
## [186] "   ON | 15771592 / R:  955P11-> 979P18  |     |B    |W    |B    |W    |B    |W    |B    |" 
## [187] "-----------------------------------------------------------------------------------------" 
## [188] "   62 | ASHWIN BALAJI                   |1.0  |W  55|U    |U    |U    |U    |U    |U    |" 
## [189] "   MI | 15219542 / R: 1530   ->1535     |     |B    |     |     |     |     |     |     |" 
## [190] "-----------------------------------------------------------------------------------------" 
## [191] "   63 | THOMAS JOSEPH HOSMER            |1.0  |L   2|L  48|D  49|L  43|L  45|H    |U    |" 
## [192] "   MI | 15057092 / R: 1175   ->1125     |     |W    |B    |W    |B    |B    |     |     |" 
## [193] "-----------------------------------------------------------------------------------------" 
## [194] "   64 | BEN LI                          |1.0  |L  22|D  30|L  31|D  49|L  46|L  42|L  54|" 
## [195] "   MI | 15006561 / R: 1163   ->1112     |     |B    |W    |W    |B    |W    |B    |B    |" 
## [196] "-----------------------------------------------------------------------------------------"

When looking at the data imported to tournamentinfo, I can see that there are already line numbers associated. I can use these line numbers to access each row and iterate along the character list using the seq_along() function. First, I will create an empty data frame consisting of row2 and row3. Then, I will iterate along the list and place each player’s row 2 and row 3 into the data frame.

tempTournamentInfo <- data.frame(
  Row2 = character(),
  Row3 = character()
)

tempTournamentInfo
## [1] Row2 Row3
## <0 rows> (or 0-length row.names)
for (i in seq_along(tournamentinfo)) {
  if (i != 3) {
      if (i %% 3 == 0) {
      new_row <- data.frame(Row2 = tournamentinfo[i-1], Row3 = tournamentinfo[i])
      tempTournamentInfo <- rbind(tempTournamentInfo, new_row)
      }
  }
}

tempTournamentInfo
##                                                                                         Row2
## 1      1 | GARY HUA                        |6.0  |W  39|W  21|W  18|W  14|W   7|D  12|D   4|
## 2      2 | DAKSHESH DARURI                 |6.0  |W  63|W  58|L   4|W  17|W  16|W  20|W   7|
## 3      3 | ADITYA BAJAJ                    |6.0  |L   8|W  61|W  25|W  21|W  11|W  13|W  12|
## 4      4 | PATRICK H SCHILLING             |5.5  |W  23|D  28|W   2|W  26|D   5|W  19|D   1|
## 5      5 | HANSHI ZUO                      |5.5  |W  45|W  37|D  12|D  13|D   4|W  14|W  17|
## 6      6 | HANSEN SONG                     |5.0  |W  34|D  29|L  11|W  35|D  10|W  27|W  21|
## 7      7 | GARY DEE SWATHELL               |5.0  |W  57|W  46|W  13|W  11|L   1|W   9|L   2|
## 8      8 | EZEKIEL HOUGHTON                |5.0  |W   3|W  32|L  14|L   9|W  47|W  28|W  19|
## 9      9 | STEFANO LEE                     |5.0  |W  25|L  18|W  59|W   8|W  26|L   7|W  20|
## 10    10 | ANVIT RAO                       |5.0  |D  16|L  19|W  55|W  31|D   6|W  25|W  18|
## 11    11 | CAMERON WILLIAM MC LEMAN        |4.5  |D  38|W  56|W   6|L   7|L   3|W  34|W  26|
## 12    12 | KENNETH J TACK                  |4.5  |W  42|W  33|D   5|W  38|H    |D   1|L   3|
## 13    13 | TORRANCE HENRY JR               |4.5  |W  36|W  27|L   7|D   5|W  33|L   3|W  32|
## 14    14 | BRADLEY SHAW                    |4.5  |W  54|W  44|W   8|L   1|D  27|L   5|W  31|
## 15    15 | ZACHARY JAMES HOUGHTON          |4.5  |D  19|L  16|W  30|L  22|W  54|W  33|W  38|
## 16    16 | MIKE NIKITIN                    |4.0  |D  10|W  15|H    |W  39|L   2|W  36|U    |
## 17    17 | RONALD GRZEGORCZYK              |4.0  |W  48|W  41|L  26|L   2|W  23|W  22|L   5|
## 18    18 | DAVID SUNDEEN                   |4.0  |W  47|W   9|L   1|W  32|L  19|W  38|L  10|
## 19    19 | DIPANKAR ROY                    |4.0  |D  15|W  10|W  52|D  28|W  18|L   4|L   8|
## 20    20 | JASON ZHENG                     |4.0  |L  40|W  49|W  23|W  41|W  28|L   2|L   9|
## 21    21 | DINH DANG BUI                   |4.0  |W  43|L   1|W  47|L   3|W  40|W  39|L   6|
## 22    22 | EUGENE L MCCLURE                |4.0  |W  64|D  52|L  28|W  15|H    |L  17|W  40|
## 23    23 | ALAN BUI                        |4.0  |L   4|W  43|L  20|W  58|L  17|W  37|W  46|
## 24    24 | MICHAEL R ALDRICH               |4.0  |L  28|L  47|W  43|L  25|W  60|W  44|W  39|
## 25    25 | LOREN SCHWIEBERT                |3.5  |L   9|W  53|L   3|W  24|D  34|L  10|W  47|
## 26    26 | MAX ZHU                         |3.5  |W  49|W  40|W  17|L   4|L   9|D  32|L  11|
## 27    27 | GAURAV GIDWANI                  |3.5  |W  51|L  13|W  46|W  37|D  14|L   6|U    |
## 28    28 | SOFIA ADINA STANESCU-BELLU      |3.5  |W  24|D   4|W  22|D  19|L  20|L   8|D  36|
## 29    29 | CHIEDOZIE OKORIE                |3.5  |W  50|D   6|L  38|L  34|W  52|W  48|U    |
## 30    30 | GEORGE AVERY JONES              |3.5  |L  52|D  64|L  15|W  55|L  31|W  61|W  50|
## 31    31 | RISHI SHETTY                    |3.5  |L  58|D  55|W  64|L  10|W  30|W  50|L  14|
## 32    32 | JOSHUA PHILIP MATHEWS           |3.5  |W  61|L   8|W  44|L  18|W  51|D  26|L  13|
## 33    33 | JADE GE                         |3.5  |W  60|L  12|W  50|D  36|L  13|L  15|W  51|
## 34    34 | MICHAEL JEFFERY THOMAS          |3.5  |L   6|W  60|L  37|W  29|D  25|L  11|W  52|
## 35    35 | JOSHUA DAVID LEE                |3.5  |L  46|L  38|W  56|L   6|W  57|D  52|W  48|
## 36    36 | SIDDHARTH JHA                   |3.5  |L  13|W  57|W  51|D  33|H    |L  16|D  28|
## 37    37 | AMIYATOSH PWNANANDAM            |3.5  |B    |L   5|W  34|L  27|H    |L  23|W  61|
## 38    38 | BRIAN LIU                       |3.0  |D  11|W  35|W  29|L  12|H    |L  18|L  15|
## 39    39 | JOEL R HENDON                   |3.0  |L   1|W  54|W  40|L  16|W  44|L  21|L  24|
## 40    40 | FOREST ZHANG                    |3.0  |W  20|L  26|L  39|W  59|L  21|W  56|L  22|
## 41    41 | KYLE WILLIAM MURPHY             |3.0  |W  59|L  17|W  58|L  20|X    |U    |U    |
## 42    42 | JARED GE                        |3.0  |L  12|L  50|L  57|D  60|D  61|W  64|W  56|
## 43    43 | ROBERT GLEN VASEY               |3.0  |L  21|L  23|L  24|W  63|W  59|L  46|W  55|
## 44    44 | JUSTIN D SCHILLING              |3.0  |B    |L  14|L  32|W  53|L  39|L  24|W  59|
## 45    45 | DEREK YAN                       |3.0  |L   5|L  51|D  60|L  56|W  63|D  55|W  58|
## 46    46 | JACOB ALEXANDER LAVALLEY        |3.0  |W  35|L   7|L  27|L  50|W  64|W  43|L  23|
## 47    47 | ERIC WRIGHT                     |2.5  |L  18|W  24|L  21|W  61|L   8|D  51|L  25|
## 48    48 | DANIEL KHAIN                    |2.5  |L  17|W  63|H    |D  52|H    |L  29|L  35|
## 49    49 | MICHAEL J MARTIN                |2.5  |L  26|L  20|D  63|D  64|W  58|H    |U    |
## 50    50 | SHIVAM JHA                      |2.5  |L  29|W  42|L  33|W  46|H    |L  31|L  30|
## 51    51 | TEJAS AYYAGARI                  |2.5  |L  27|W  45|L  36|W  57|L  32|D  47|L  33|
## 52    52 | ETHAN GUO                       |2.5  |W  30|D  22|L  19|D  48|L  29|D  35|L  34|
## 53    53 | JOSE C YBARRA                   |2.0  |H    |L  25|H    |L  44|U    |W  57|U    |
## 54    54 | LARRY HODGE                     |2.0  |L  14|L  39|L  61|B    |L  15|L  59|W  64|
## 55    55 | ALEX KONG                       |2.0  |L  62|D  31|L  10|L  30|B    |D  45|L  43|
## 56    56 | MARISA RICCI                    |2.0  |H    |L  11|L  35|W  45|H    |L  40|L  42|
## 57    57 | MICHAEL LU                      |2.0  |L   7|L  36|W  42|L  51|L  35|L  53|B    |
## 58    58 | VIRAJ MOHILE                    |2.0  |W  31|L   2|L  41|L  23|L  49|B    |L  45|
## 59    59 | SEAN M MC CORMICK               |2.0  |L  41|B    |L   9|L  40|L  43|W  54|L  44|
## 60    60 | JULIA SHEN                      |1.5  |L  33|L  34|D  45|D  42|L  24|H    |U    |
## 61    61 | JEZZEL FARKAS                   |1.5  |L  32|L   3|W  54|L  47|D  42|L  30|L  37|
## 62    62 | ASHWIN BALAJI                   |1.0  |W  55|U    |U    |U    |U    |U    |U    |
## 63    63 | THOMAS JOSEPH HOSMER            |1.0  |L   2|L  48|D  49|L  43|L  45|H    |U    |
## 64    64 | BEN LI                          |1.0  |L  22|D  30|L  31|D  49|L  46|L  42|L  54|
##                                                                                         Row3
## 1     ON | 15445895 / R: 1794   ->1817     |N:2  |W    |B    |W    |B    |W    |B    |W    |
## 2     MI | 14598900 / R: 1553   ->1663     |N:2  |B    |W    |B    |W    |B    |W    |B    |
## 3     MI | 14959604 / R: 1384   ->1640     |N:2  |W    |B    |W    |B    |W    |B    |W    |
## 4     MI | 12616049 / R: 1716   ->1744     |N:2  |W    |B    |W    |B    |W    |B    |B    |
## 5     MI | 14601533 / R: 1655   ->1690     |N:2  |B    |W    |B    |W    |B    |W    |B    |
## 6     OH | 15055204 / R: 1686   ->1687     |N:3  |W    |B    |W    |B    |B    |W    |B    |
## 7     MI | 11146376 / R: 1649   ->1673     |N:3  |W    |B    |W    |B    |B    |W    |W    |
## 8     MI | 15142253 / R: 1641P17->1657P24  |N:3  |B    |W    |B    |W    |B    |W    |W    |
## 9     ON | 14954524 / R: 1411   ->1564     |N:2  |W    |B    |W    |B    |W    |B    |B    |
## 10    MI | 14150362 / R: 1365   ->1544     |N:3  |W    |W    |B    |B    |W    |B    |W    |
## 11    MI | 12581589 / R: 1712   ->1696     |N:3  |B    |W    |B    |W    |B    |W    |B    |
## 12    MI | 12681257 / R: 1663   ->1670     |N:3  |W    |B    |W    |B    |     |W    |B    |
## 13    MI | 15082995 / R: 1666   ->1662     |N:3  |B    |W    |B    |B    |W    |W    |B    |
## 14    MI | 10131499 / R: 1610   ->1618     |N:3  |W    |B    |W    |W    |B    |B    |W    |
## 15    MI | 15619130 / R: 1220P13->1416P20  |N:3  |B    |B    |W    |W    |B    |B    |W    |
## 16    MI | 10295068 / R: 1604   ->1613     |N:3  |B    |W    |     |B    |W    |B    |     |
## 17    MI | 10297702 / R: 1629   ->1610     |N:3  |W    |B    |W    |B    |W    |B    |W    |
## 18    MI | 11342094 / R: 1600   ->1600     |N:3  |B    |W    |B    |W    |B    |W    |B    |
## 19    MI | 14862333 / R: 1564   ->1570     |N:3  |W    |B    |W    |B    |W    |W    |B    |
## 20    MI | 14529060 / R: 1595   ->1569     |N:4  |W    |B    |W    |B    |W    |B    |W    |
## 21    ON | 15495066 / R: 1563P22->1562     |N:3  |B    |W    |B    |W    |W    |B    |W    |
## 22    MI | 12405534 / R: 1555   ->1529     |N:4  |W    |B    |W    |B    |     |W    |B    |
## 23    ON | 15030142 / R: 1363   ->1371     |     |B    |W    |B    |W    |B    |W    |B    |
## 24    MI | 13469010 / R: 1229   ->1300     |N:4  |B    |W    |B    |B    |W    |W    |B    |
## 25    MI | 12486656 / R: 1745   ->1681     |N:4  |B    |W    |B    |W    |B    |W    |B    |
## 26    ON | 15131520 / R: 1579   ->1564     |N:4  |B    |W    |B    |W    |B    |W    |W    |
## 27    MI | 14476567 / R: 1552   ->1539     |N:4  |W    |B    |W    |B    |W    |B    |     |
## 28    MI | 14882954 / R: 1507   ->1513     |N:3  |W    |W    |B    |W    |B    |B    |W    |
## 29    MI | 15323285 / R: 1602P6 ->1508P12  |N:4  |B    |W    |B    |W    |W    |B    |     |
## 30    ON | 12577178 / R: 1522   ->1444     |     |W    |B    |B    |W    |W    |B    |B    |
## 31    MI | 15131618 / R: 1494   ->1444     |     |B    |W    |B    |W    |B    |W    |B    |
## 32    ON | 14073750 / R: 1441   ->1433     |N:4  |W    |B    |W    |B    |W    |B    |W    |
## 33    MI | 14691842 / R: 1449   ->1421     |     |B    |W    |B    |W    |B    |W    |B    |
## 34    MI | 15051807 / R: 1399   ->1400     |     |B    |W    |B    |B    |W    |B    |W    |
## 35    MI | 14601397 / R: 1438   ->1392     |     |W    |W    |B    |W    |B    |B    |W    |
## 36    MI | 14773163 / R: 1355   ->1367     |N:4  |W    |B    |W    |B    |     |W    |B    |
## 37    MI | 15489571 / R:  980P12->1077P17  |     |     |B    |W    |W    |     |B    |W    |
## 38    MI | 15108523 / R: 1423   ->1439     |N:4  |W    |B    |W    |W    |     |B    |B    |
## 39    MI | 12923035 / R: 1436P23->1413     |N:4  |B    |W    |B    |W    |B    |W    |W    |
## 40    MI | 14892710 / R: 1348   ->1346     |     |B    |B    |W    |W    |B    |W    |W    |
## 41    MI | 15761443 / R: 1403P5 ->1341P9   |     |B    |W    |B    |W    |     |     |     |
## 42    MI | 14462326 / R: 1332   ->1256     |     |B    |W    |B    |B    |W    |W    |B    |
## 43    MI | 14101068 / R: 1283   ->1244     |     |W    |B    |W    |W    |B    |B    |W    |
## 44    MI | 15323504 / R: 1199   ->1199     |     |     |W    |B    |B    |W    |B    |W    |
## 45    MI | 15372807 / R: 1242   ->1191     |     |W    |B    |W    |B    |W    |B    |W    |
## 46    MI | 15490981 / R:  377P3 ->1076P10  |     |B    |W    |B    |W    |B    |W    |W    |
## 47    MI | 12533115 / R: 1362   ->1341     |     |W    |B    |W    |B    |W    |B    |W    |
## 48    MI | 14369165 / R: 1382   ->1335     |     |B    |W    |     |B    |     |W    |B    |
## 49    MI | 12531685 / R: 1291P12->1259P17  |     |W    |W    |B    |W    |B    |     |     |
## 50    MI | 14773178 / R: 1056   ->1111     |     |W    |B    |W    |B    |     |B    |W    |
## 51    MI | 15205474 / R: 1011   ->1097     |     |B    |W    |B    |W    |B    |W    |W    |
## 52    MI | 14918803 / R:  935   ->1092     |N:4  |B    |W    |B    |W    |B    |W    |B    |
## 53    MI | 12578849 / R: 1393   ->1359     |     |     |B    |     |W    |     |W    |     |
## 54    MI | 12836773 / R: 1270   ->1200     |     |B    |B    |W    |     |W    |B    |W    |
## 55    MI | 15412571 / R: 1186   ->1163     |     |W    |B    |W    |B    |     |W    |B    |
## 56    MI | 14679887 / R: 1153   ->1140     |     |     |B    |W    |W    |     |B    |W    |
## 57    MI | 15113330 / R: 1092   ->1079     |     |B    |W    |W    |B    |W    |B    |     |
## 58    MI | 14700365 / R:  917   -> 941     |     |W    |B    |W    |B    |W    |     |B    |
## 59    MI | 12841036 / R:  853   -> 878     |     |W    |     |B    |B    |W    |W    |B    |
## 60    MI | 14579262 / R:  967   -> 984     |     |W    |B    |B    |W    |B    |     |     |
## 61    ON | 15771592 / R:  955P11-> 979P18  |     |B    |W    |B    |W    |B    |W    |B    |
## 62    MI | 15219542 / R: 1530   ->1535     |     |B    |     |     |     |     |     |     |
## 63    MI | 15057092 / R: 1175   ->1125     |     |W    |B    |W    |B    |B    |     |     |
## 64    MI | 15006561 / R: 1163   ->1112     |     |B    |W    |W    |B    |W    |B    |B    |

Parse Data

From the above, recall that each row in the dataframe now corresponds to each player. The player’s data is accessible in the columns row2 and row3, which needs to be parsed out further. I can do this with the use of the separate() function to parse out the strings in Row2 and Row3 using the pipe delimiter provided. Since the pipe character is used in regular expressions to denote an OR condition, a double backslash is needed to escape it from the regular expression and string.

tempTournamentInfo_parsed <- tempTournamentInfo %>% separate(Row2, into = c("Number","Name","TotalPoints","Round1","Round2","Round3","Round4","Round5","Round6","Round7"), sep = "\\|") %>% separate(Row3, into = c("State","Rating_raw"), sep = "\\|")
tempTournamentInfo_parsed
##    Number                              Name TotalPoints Round1 Round2 Round3
## 1      1   GARY HUA                               6.0    W  39  W  21  W  18
## 2      2   DAKSHESH DARURI                        6.0    W  63  W  58  L   4
## 3      3   ADITYA BAJAJ                           6.0    L   8  W  61  W  25
## 4      4   PATRICK H SCHILLING                    5.5    W  23  D  28  W   2
## 5      5   HANSHI ZUO                             5.5    W  45  W  37  D  12
## 6      6   HANSEN SONG                            5.0    W  34  D  29  L  11
## 7      7   GARY DEE SWATHELL                      5.0    W  57  W  46  W  13
## 8      8   EZEKIEL HOUGHTON                       5.0    W   3  W  32  L  14
## 9      9   STEFANO LEE                            5.0    W  25  L  18  W  59
## 10    10   ANVIT RAO                              5.0    D  16  L  19  W  55
## 11    11   CAMERON WILLIAM MC LEMAN               4.5    D  38  W  56  W   6
## 12    12   KENNETH J TACK                         4.5    W  42  W  33  D   5
## 13    13   TORRANCE HENRY JR                      4.5    W  36  W  27  L   7
## 14    14   BRADLEY SHAW                           4.5    W  54  W  44  W   8
## 15    15   ZACHARY JAMES HOUGHTON                 4.5    D  19  L  16  W  30
## 16    16   MIKE NIKITIN                           4.0    D  10  W  15  H    
## 17    17   RONALD GRZEGORCZYK                     4.0    W  48  W  41  L  26
## 18    18   DAVID SUNDEEN                          4.0    W  47  W   9  L   1
## 19    19   DIPANKAR ROY                           4.0    D  15  W  10  W  52
## 20    20   JASON ZHENG                            4.0    L  40  W  49  W  23
## 21    21   DINH DANG BUI                          4.0    W  43  L   1  W  47
## 22    22   EUGENE L MCCLURE                       4.0    W  64  D  52  L  28
## 23    23   ALAN BUI                               4.0    L   4  W  43  L  20
## 24    24   MICHAEL R ALDRICH                      4.0    L  28  L  47  W  43
## 25    25   LOREN SCHWIEBERT                       3.5    L   9  W  53  L   3
## 26    26   MAX ZHU                                3.5    W  49  W  40  W  17
## 27    27   GAURAV GIDWANI                         3.5    W  51  L  13  W  46
## 28    28   SOFIA ADINA STANESCU-BELLU             3.5    W  24  D   4  W  22
## 29    29   CHIEDOZIE OKORIE                       3.5    W  50  D   6  L  38
## 30    30   GEORGE AVERY JONES                     3.5    L  52  D  64  L  15
## 31    31   RISHI SHETTY                           3.5    L  58  D  55  W  64
## 32    32   JOSHUA PHILIP MATHEWS                  3.5    W  61  L   8  W  44
## 33    33   JADE GE                                3.5    W  60  L  12  W  50
## 34    34   MICHAEL JEFFERY THOMAS                 3.5    L   6  W  60  L  37
## 35    35   JOSHUA DAVID LEE                       3.5    L  46  L  38  W  56
## 36    36   SIDDHARTH JHA                          3.5    L  13  W  57  W  51
## 37    37   AMIYATOSH PWNANANDAM                   3.5    B      L   5  W  34
## 38    38   BRIAN LIU                              3.0    D  11  W  35  W  29
## 39    39   JOEL R HENDON                          3.0    L   1  W  54  W  40
## 40    40   FOREST ZHANG                           3.0    W  20  L  26  L  39
## 41    41   KYLE WILLIAM MURPHY                    3.0    W  59  L  17  W  58
## 42    42   JARED GE                               3.0    L  12  L  50  L  57
## 43    43   ROBERT GLEN VASEY                      3.0    L  21  L  23  L  24
## 44    44   JUSTIN D SCHILLING                     3.0    B      L  14  L  32
## 45    45   DEREK YAN                              3.0    L   5  L  51  D  60
## 46    46   JACOB ALEXANDER LAVALLEY               3.0    W  35  L   7  L  27
## 47    47   ERIC WRIGHT                            2.5    L  18  W  24  L  21
## 48    48   DANIEL KHAIN                           2.5    L  17  W  63  H    
## 49    49   MICHAEL J MARTIN                       2.5    L  26  L  20  D  63
## 50    50   SHIVAM JHA                             2.5    L  29  W  42  L  33
## 51    51   TEJAS AYYAGARI                         2.5    L  27  W  45  L  36
## 52    52   ETHAN GUO                              2.5    W  30  D  22  L  19
## 53    53   JOSE C YBARRA                          2.0    H      L  25  H    
## 54    54   LARRY HODGE                            2.0    L  14  L  39  L  61
## 55    55   ALEX KONG                              2.0    L  62  D  31  L  10
## 56    56   MARISA RICCI                           2.0    H      L  11  L  35
## 57    57   MICHAEL LU                             2.0    L   7  L  36  W  42
## 58    58   VIRAJ MOHILE                           2.0    W  31  L   2  L  41
## 59    59   SEAN M MC CORMICK                      2.0    L  41  B      L   9
## 60    60   JULIA SHEN                             1.5    L  33  L  34  D  45
## 61    61   JEZZEL FARKAS                          1.5    L  32  L   3  W  54
## 62    62   ASHWIN BALAJI                          1.0    W  55  U      U    
## 63    63   THOMAS JOSEPH HOSMER                   1.0    L   2  L  48  D  49
## 64    64   BEN LI                                 1.0    L  22  D  30  L  31
##    Round4 Round5 Round6 Round7  State                        Rating_raw
## 1   W  14  W   7  D  12  D   4    ON   15445895 / R: 1794   ->1817     
## 2   W  17  W  16  W  20  W   7    MI   14598900 / R: 1553   ->1663     
## 3   W  21  W  11  W  13  W  12    MI   14959604 / R: 1384   ->1640     
## 4   W  26  D   5  W  19  D   1    MI   12616049 / R: 1716   ->1744     
## 5   D  13  D   4  W  14  W  17    MI   14601533 / R: 1655   ->1690     
## 6   W  35  D  10  W  27  W  21    OH   15055204 / R: 1686   ->1687     
## 7   W  11  L   1  W   9  L   2    MI   11146376 / R: 1649   ->1673     
## 8   L   9  W  47  W  28  W  19    MI   15142253 / R: 1641P17->1657P24  
## 9   W   8  W  26  L   7  W  20    ON   14954524 / R: 1411   ->1564     
## 10  W  31  D   6  W  25  W  18    MI   14150362 / R: 1365   ->1544     
## 11  L   7  L   3  W  34  W  26    MI   12581589 / R: 1712   ->1696     
## 12  W  38  H      D   1  L   3    MI   12681257 / R: 1663   ->1670     
## 13  D   5  W  33  L   3  W  32    MI   15082995 / R: 1666   ->1662     
## 14  L   1  D  27  L   5  W  31    MI   10131499 / R: 1610   ->1618     
## 15  L  22  W  54  W  33  W  38    MI   15619130 / R: 1220P13->1416P20  
## 16  W  39  L   2  W  36  U        MI   10295068 / R: 1604   ->1613     
## 17  L   2  W  23  W  22  L   5    MI   10297702 / R: 1629   ->1610     
## 18  W  32  L  19  W  38  L  10    MI   11342094 / R: 1600   ->1600     
## 19  D  28  W  18  L   4  L   8    MI   14862333 / R: 1564   ->1570     
## 20  W  41  W  28  L   2  L   9    MI   14529060 / R: 1595   ->1569     
## 21  L   3  W  40  W  39  L   6    ON   15495066 / R: 1563P22->1562     
## 22  W  15  H      L  17  W  40    MI   12405534 / R: 1555   ->1529     
## 23  W  58  L  17  W  37  W  46    ON   15030142 / R: 1363   ->1371     
## 24  L  25  W  60  W  44  W  39    MI   13469010 / R: 1229   ->1300     
## 25  W  24  D  34  L  10  W  47    MI   12486656 / R: 1745   ->1681     
## 26  L   4  L   9  D  32  L  11    ON   15131520 / R: 1579   ->1564     
## 27  W  37  D  14  L   6  U        MI   14476567 / R: 1552   ->1539     
## 28  D  19  L  20  L   8  D  36    MI   14882954 / R: 1507   ->1513     
## 29  L  34  W  52  W  48  U        MI   15323285 / R: 1602P6 ->1508P12  
## 30  W  55  L  31  W  61  W  50    ON   12577178 / R: 1522   ->1444     
## 31  L  10  W  30  W  50  L  14    MI   15131618 / R: 1494   ->1444     
## 32  L  18  W  51  D  26  L  13    ON   14073750 / R: 1441   ->1433     
## 33  D  36  L  13  L  15  W  51    MI   14691842 / R: 1449   ->1421     
## 34  W  29  D  25  L  11  W  52    MI   15051807 / R: 1399   ->1400     
## 35  L   6  W  57  D  52  W  48    MI   14601397 / R: 1438   ->1392     
## 36  D  33  H      L  16  D  28    MI   14773163 / R: 1355   ->1367     
## 37  L  27  H      L  23  W  61    MI   15489571 / R:  980P12->1077P17  
## 38  L  12  H      L  18  L  15    MI   15108523 / R: 1423   ->1439     
## 39  L  16  W  44  L  21  L  24    MI   12923035 / R: 1436P23->1413     
## 40  W  59  L  21  W  56  L  22    MI   14892710 / R: 1348   ->1346     
## 41  L  20  X      U      U        MI   15761443 / R: 1403P5 ->1341P9   
## 42  D  60  D  61  W  64  W  56    MI   14462326 / R: 1332   ->1256     
## 43  W  63  W  59  L  46  W  55    MI   14101068 / R: 1283   ->1244     
## 44  W  53  L  39  L  24  W  59    MI   15323504 / R: 1199   ->1199     
## 45  L  56  W  63  D  55  W  58    MI   15372807 / R: 1242   ->1191     
## 46  L  50  W  64  W  43  L  23    MI   15490981 / R:  377P3 ->1076P10  
## 47  W  61  L   8  D  51  L  25    MI   12533115 / R: 1362   ->1341     
## 48  D  52  H      L  29  L  35    MI   14369165 / R: 1382   ->1335     
## 49  D  64  W  58  H      U        MI   12531685 / R: 1291P12->1259P17  
## 50  W  46  H      L  31  L  30    MI   14773178 / R: 1056   ->1111     
## 51  W  57  L  32  D  47  L  33    MI   15205474 / R: 1011   ->1097     
## 52  D  48  L  29  D  35  L  34    MI   14918803 / R:  935   ->1092     
## 53  L  44  U      W  57  U        MI   12578849 / R: 1393   ->1359     
## 54  B      L  15  L  59  W  64    MI   12836773 / R: 1270   ->1200     
## 55  L  30  B      D  45  L  43    MI   15412571 / R: 1186   ->1163     
## 56  W  45  H      L  40  L  42    MI   14679887 / R: 1153   ->1140     
## 57  L  51  L  35  L  53  B        MI   15113330 / R: 1092   ->1079     
## 58  L  23  L  49  B      L  45    MI   14700365 / R:  917   -> 941     
## 59  L  40  L  43  W  54  L  44    MI   12841036 / R:  853   -> 878     
## 60  D  42  L  24  H      U        MI   14579262 / R:  967   -> 984     
## 61  L  47  D  42  L  30  L  37    ON   15771592 / R:  955P11-> 979P18  
## 62  U      U      U      U        MI   15219542 / R: 1530   ->1535     
## 63  L  43  L  45  H      U        MI   15057092 / R: 1175   ->1125     
## 64  D  49  L  46  L  42  L  54    MI   15006561 / R: 1163   ->1112

The new dataframe is now closer to the desired final result, but still needs some adjustment. For instance, the pre tournament rating in Rating_raw needs to be separated from the ID and post tournament ratings. This was done in a similar manner to the above, except with different separators designated. Additionally, since Wins/Losses/Draws are not important information from this exercise, the opponent’s tournament ID must be separated from the outcome of the match in each of the Round columns. This is done via the str_extract function.

tempTournamentInfo_parsed <- tempTournamentInfo_parsed %>% separate(Rating_raw, into = c("USCF","Rating_raw"), sep = ": ") %>% 
  separate(Rating_raw, into = c("pre_rating","post_rating"), sep = "-") %>%
  separate(pre_rating, into = c("pre_rating","provisional"),sep = "P") %>% mutate(pre_rating = as.numeric(pre_rating)) %>%
  subset(select = -c(post_rating,USCF,provisional)) 

tempTournamentInfo_parsed
##    Number                              Name TotalPoints Round1 Round2 Round3
## 1      1   GARY HUA                               6.0    W  39  W  21  W  18
## 2      2   DAKSHESH DARURI                        6.0    W  63  W  58  L   4
## 3      3   ADITYA BAJAJ                           6.0    L   8  W  61  W  25
## 4      4   PATRICK H SCHILLING                    5.5    W  23  D  28  W   2
## 5      5   HANSHI ZUO                             5.5    W  45  W  37  D  12
## 6      6   HANSEN SONG                            5.0    W  34  D  29  L  11
## 7      7   GARY DEE SWATHELL                      5.0    W  57  W  46  W  13
## 8      8   EZEKIEL HOUGHTON                       5.0    W   3  W  32  L  14
## 9      9   STEFANO LEE                            5.0    W  25  L  18  W  59
## 10    10   ANVIT RAO                              5.0    D  16  L  19  W  55
## 11    11   CAMERON WILLIAM MC LEMAN               4.5    D  38  W  56  W   6
## 12    12   KENNETH J TACK                         4.5    W  42  W  33  D   5
## 13    13   TORRANCE HENRY JR                      4.5    W  36  W  27  L   7
## 14    14   BRADLEY SHAW                           4.5    W  54  W  44  W   8
## 15    15   ZACHARY JAMES HOUGHTON                 4.5    D  19  L  16  W  30
## 16    16   MIKE NIKITIN                           4.0    D  10  W  15  H    
## 17    17   RONALD GRZEGORCZYK                     4.0    W  48  W  41  L  26
## 18    18   DAVID SUNDEEN                          4.0    W  47  W   9  L   1
## 19    19   DIPANKAR ROY                           4.0    D  15  W  10  W  52
## 20    20   JASON ZHENG                            4.0    L  40  W  49  W  23
## 21    21   DINH DANG BUI                          4.0    W  43  L   1  W  47
## 22    22   EUGENE L MCCLURE                       4.0    W  64  D  52  L  28
## 23    23   ALAN BUI                               4.0    L   4  W  43  L  20
## 24    24   MICHAEL R ALDRICH                      4.0    L  28  L  47  W  43
## 25    25   LOREN SCHWIEBERT                       3.5    L   9  W  53  L   3
## 26    26   MAX ZHU                                3.5    W  49  W  40  W  17
## 27    27   GAURAV GIDWANI                         3.5    W  51  L  13  W  46
## 28    28   SOFIA ADINA STANESCU-BELLU             3.5    W  24  D   4  W  22
## 29    29   CHIEDOZIE OKORIE                       3.5    W  50  D   6  L  38
## 30    30   GEORGE AVERY JONES                     3.5    L  52  D  64  L  15
## 31    31   RISHI SHETTY                           3.5    L  58  D  55  W  64
## 32    32   JOSHUA PHILIP MATHEWS                  3.5    W  61  L   8  W  44
## 33    33   JADE GE                                3.5    W  60  L  12  W  50
## 34    34   MICHAEL JEFFERY THOMAS                 3.5    L   6  W  60  L  37
## 35    35   JOSHUA DAVID LEE                       3.5    L  46  L  38  W  56
## 36    36   SIDDHARTH JHA                          3.5    L  13  W  57  W  51
## 37    37   AMIYATOSH PWNANANDAM                   3.5    B      L   5  W  34
## 38    38   BRIAN LIU                              3.0    D  11  W  35  W  29
## 39    39   JOEL R HENDON                          3.0    L   1  W  54  W  40
## 40    40   FOREST ZHANG                           3.0    W  20  L  26  L  39
## 41    41   KYLE WILLIAM MURPHY                    3.0    W  59  L  17  W  58
## 42    42   JARED GE                               3.0    L  12  L  50  L  57
## 43    43   ROBERT GLEN VASEY                      3.0    L  21  L  23  L  24
## 44    44   JUSTIN D SCHILLING                     3.0    B      L  14  L  32
## 45    45   DEREK YAN                              3.0    L   5  L  51  D  60
## 46    46   JACOB ALEXANDER LAVALLEY               3.0    W  35  L   7  L  27
## 47    47   ERIC WRIGHT                            2.5    L  18  W  24  L  21
## 48    48   DANIEL KHAIN                           2.5    L  17  W  63  H    
## 49    49   MICHAEL J MARTIN                       2.5    L  26  L  20  D  63
## 50    50   SHIVAM JHA                             2.5    L  29  W  42  L  33
## 51    51   TEJAS AYYAGARI                         2.5    L  27  W  45  L  36
## 52    52   ETHAN GUO                              2.5    W  30  D  22  L  19
## 53    53   JOSE C YBARRA                          2.0    H      L  25  H    
## 54    54   LARRY HODGE                            2.0    L  14  L  39  L  61
## 55    55   ALEX KONG                              2.0    L  62  D  31  L  10
## 56    56   MARISA RICCI                           2.0    H      L  11  L  35
## 57    57   MICHAEL LU                             2.0    L   7  L  36  W  42
## 58    58   VIRAJ MOHILE                           2.0    W  31  L   2  L  41
## 59    59   SEAN M MC CORMICK                      2.0    L  41  B      L   9
## 60    60   JULIA SHEN                             1.5    L  33  L  34  D  45
## 61    61   JEZZEL FARKAS                          1.5    L  32  L   3  W  54
## 62    62   ASHWIN BALAJI                          1.0    W  55  U      U    
## 63    63   THOMAS JOSEPH HOSMER                   1.0    L   2  L  48  D  49
## 64    64   BEN LI                                 1.0    L  22  D  30  L  31
##    Round4 Round5 Round6 Round7  State pre_rating
## 1   W  14  W   7  D  12  D   4    ON        1794
## 2   W  17  W  16  W  20  W   7    MI        1553
## 3   W  21  W  11  W  13  W  12    MI        1384
## 4   W  26  D   5  W  19  D   1    MI        1716
## 5   D  13  D   4  W  14  W  17    MI        1655
## 6   W  35  D  10  W  27  W  21    OH        1686
## 7   W  11  L   1  W   9  L   2    MI        1649
## 8   L   9  W  47  W  28  W  19    MI        1641
## 9   W   8  W  26  L   7  W  20    ON        1411
## 10  W  31  D   6  W  25  W  18    MI        1365
## 11  L   7  L   3  W  34  W  26    MI        1712
## 12  W  38  H      D   1  L   3    MI        1663
## 13  D   5  W  33  L   3  W  32    MI        1666
## 14  L   1  D  27  L   5  W  31    MI        1610
## 15  L  22  W  54  W  33  W  38    MI        1220
## 16  W  39  L   2  W  36  U        MI        1604
## 17  L   2  W  23  W  22  L   5    MI        1629
## 18  W  32  L  19  W  38  L  10    MI        1600
## 19  D  28  W  18  L   4  L   8    MI        1564
## 20  W  41  W  28  L   2  L   9    MI        1595
## 21  L   3  W  40  W  39  L   6    ON        1563
## 22  W  15  H      L  17  W  40    MI        1555
## 23  W  58  L  17  W  37  W  46    ON        1363
## 24  L  25  W  60  W  44  W  39    MI        1229
## 25  W  24  D  34  L  10  W  47    MI        1745
## 26  L   4  L   9  D  32  L  11    ON        1579
## 27  W  37  D  14  L   6  U        MI        1552
## 28  D  19  L  20  L   8  D  36    MI        1507
## 29  L  34  W  52  W  48  U        MI        1602
## 30  W  55  L  31  W  61  W  50    ON        1522
## 31  L  10  W  30  W  50  L  14    MI        1494
## 32  L  18  W  51  D  26  L  13    ON        1441
## 33  D  36  L  13  L  15  W  51    MI        1449
## 34  W  29  D  25  L  11  W  52    MI        1399
## 35  L   6  W  57  D  52  W  48    MI        1438
## 36  D  33  H      L  16  D  28    MI        1355
## 37  L  27  H      L  23  W  61    MI         980
## 38  L  12  H      L  18  L  15    MI        1423
## 39  L  16  W  44  L  21  L  24    MI        1436
## 40  W  59  L  21  W  56  L  22    MI        1348
## 41  L  20  X      U      U        MI        1403
## 42  D  60  D  61  W  64  W  56    MI        1332
## 43  W  63  W  59  L  46  W  55    MI        1283
## 44  W  53  L  39  L  24  W  59    MI        1199
## 45  L  56  W  63  D  55  W  58    MI        1242
## 46  L  50  W  64  W  43  L  23    MI         377
## 47  W  61  L   8  D  51  L  25    MI        1362
## 48  D  52  H      L  29  L  35    MI        1382
## 49  D  64  W  58  H      U        MI        1291
## 50  W  46  H      L  31  L  30    MI        1056
## 51  W  57  L  32  D  47  L  33    MI        1011
## 52  D  48  L  29  D  35  L  34    MI         935
## 53  L  44  U      W  57  U        MI        1393
## 54  B      L  15  L  59  W  64    MI        1270
## 55  L  30  B      D  45  L  43    MI        1186
## 56  W  45  H      L  40  L  42    MI        1153
## 57  L  51  L  35  L  53  B        MI        1092
## 58  L  23  L  49  B      L  45    MI         917
## 59  L  40  L  43  W  54  L  44    MI         853
## 60  D  42  L  24  H      U        MI         967
## 61  L  47  D  42  L  30  L  37    ON         955
## 62  U      U      U      U        MI        1530
## 63  L  43  L  45  H      U        MI        1175
## 64  D  49  L  46  L  42  L  54    MI        1163
tempTournamentInfo_parsed$Round1 <- str_extract(tempTournamentInfo_parsed$Round1, "(\\d\\d|\\d)")
tempTournamentInfo_parsed$Round2 <- str_extract(tempTournamentInfo_parsed$Round2, "(\\d\\d|\\d)")
tempTournamentInfo_parsed$Round3 <- str_extract(tempTournamentInfo_parsed$Round3, "(\\d\\d|\\d)")
tempTournamentInfo_parsed$Round4 <- str_extract(tempTournamentInfo_parsed$Round4, "(\\d\\d|\\d)")
tempTournamentInfo_parsed$Round5 <- str_extract(tempTournamentInfo_parsed$Round5, "(\\d\\d|\\d)")
tempTournamentInfo_parsed$Round6 <- str_extract(tempTournamentInfo_parsed$Round6, "(\\d\\d|\\d)")
tempTournamentInfo_parsed$Round7 <- str_extract(tempTournamentInfo_parsed$Round7, "(\\d\\d|\\d)")

tempTournamentInfo_parsed
##    Number                              Name TotalPoints Round1 Round2 Round3
## 1      1   GARY HUA                               6.0       39     21     18
## 2      2   DAKSHESH DARURI                        6.0       63     58      4
## 3      3   ADITYA BAJAJ                           6.0        8     61     25
## 4      4   PATRICK H SCHILLING                    5.5       23     28      2
## 5      5   HANSHI ZUO                             5.5       45     37     12
## 6      6   HANSEN SONG                            5.0       34     29     11
## 7      7   GARY DEE SWATHELL                      5.0       57     46     13
## 8      8   EZEKIEL HOUGHTON                       5.0        3     32     14
## 9      9   STEFANO LEE                            5.0       25     18     59
## 10    10   ANVIT RAO                              5.0       16     19     55
## 11    11   CAMERON WILLIAM MC LEMAN               4.5       38     56      6
## 12    12   KENNETH J TACK                         4.5       42     33      5
## 13    13   TORRANCE HENRY JR                      4.5       36     27      7
## 14    14   BRADLEY SHAW                           4.5       54     44      8
## 15    15   ZACHARY JAMES HOUGHTON                 4.5       19     16     30
## 16    16   MIKE NIKITIN                           4.0       10     15   <NA>
## 17    17   RONALD GRZEGORCZYK                     4.0       48     41     26
## 18    18   DAVID SUNDEEN                          4.0       47      9      1
## 19    19   DIPANKAR ROY                           4.0       15     10     52
## 20    20   JASON ZHENG                            4.0       40     49     23
## 21    21   DINH DANG BUI                          4.0       43      1     47
## 22    22   EUGENE L MCCLURE                       4.0       64     52     28
## 23    23   ALAN BUI                               4.0        4     43     20
## 24    24   MICHAEL R ALDRICH                      4.0       28     47     43
## 25    25   LOREN SCHWIEBERT                       3.5        9     53      3
## 26    26   MAX ZHU                                3.5       49     40     17
## 27    27   GAURAV GIDWANI                         3.5       51     13     46
## 28    28   SOFIA ADINA STANESCU-BELLU             3.5       24      4     22
## 29    29   CHIEDOZIE OKORIE                       3.5       50      6     38
## 30    30   GEORGE AVERY JONES                     3.5       52     64     15
## 31    31   RISHI SHETTY                           3.5       58     55     64
## 32    32   JOSHUA PHILIP MATHEWS                  3.5       61      8     44
## 33    33   JADE GE                                3.5       60     12     50
## 34    34   MICHAEL JEFFERY THOMAS                 3.5        6     60     37
## 35    35   JOSHUA DAVID LEE                       3.5       46     38     56
## 36    36   SIDDHARTH JHA                          3.5       13     57     51
## 37    37   AMIYATOSH PWNANANDAM                   3.5     <NA>      5     34
## 38    38   BRIAN LIU                              3.0       11     35     29
## 39    39   JOEL R HENDON                          3.0        1     54     40
## 40    40   FOREST ZHANG                           3.0       20     26     39
## 41    41   KYLE WILLIAM MURPHY                    3.0       59     17     58
## 42    42   JARED GE                               3.0       12     50     57
## 43    43   ROBERT GLEN VASEY                      3.0       21     23     24
## 44    44   JUSTIN D SCHILLING                     3.0     <NA>     14     32
## 45    45   DEREK YAN                              3.0        5     51     60
## 46    46   JACOB ALEXANDER LAVALLEY               3.0       35      7     27
## 47    47   ERIC WRIGHT                            2.5       18     24     21
## 48    48   DANIEL KHAIN                           2.5       17     63   <NA>
## 49    49   MICHAEL J MARTIN                       2.5       26     20     63
## 50    50   SHIVAM JHA                             2.5       29     42     33
## 51    51   TEJAS AYYAGARI                         2.5       27     45     36
## 52    52   ETHAN GUO                              2.5       30     22     19
## 53    53   JOSE C YBARRA                          2.0     <NA>     25   <NA>
## 54    54   LARRY HODGE                            2.0       14     39     61
## 55    55   ALEX KONG                              2.0       62     31     10
## 56    56   MARISA RICCI                           2.0     <NA>     11     35
## 57    57   MICHAEL LU                             2.0        7     36     42
## 58    58   VIRAJ MOHILE                           2.0       31      2     41
## 59    59   SEAN M MC CORMICK                      2.0       41   <NA>      9
## 60    60   JULIA SHEN                             1.5       33     34     45
## 61    61   JEZZEL FARKAS                          1.5       32      3     54
## 62    62   ASHWIN BALAJI                          1.0       55   <NA>   <NA>
## 63    63   THOMAS JOSEPH HOSMER                   1.0        2     48     49
## 64    64   BEN LI                                 1.0       22     30     31
##    Round4 Round5 Round6 Round7  State pre_rating
## 1      14      7     12      4    ON        1794
## 2      17     16     20      7    MI        1553
## 3      21     11     13     12    MI        1384
## 4      26      5     19      1    MI        1716
## 5      13      4     14     17    MI        1655
## 6      35     10     27     21    OH        1686
## 7      11      1      9      2    MI        1649
## 8       9     47     28     19    MI        1641
## 9       8     26      7     20    ON        1411
## 10     31      6     25     18    MI        1365
## 11      7      3     34     26    MI        1712
## 12     38   <NA>      1      3    MI        1663
## 13      5     33      3     32    MI        1666
## 14      1     27      5     31    MI        1610
## 15     22     54     33     38    MI        1220
## 16     39      2     36   <NA>    MI        1604
## 17      2     23     22      5    MI        1629
## 18     32     19     38     10    MI        1600
## 19     28     18      4      8    MI        1564
## 20     41     28      2      9    MI        1595
## 21      3     40     39      6    ON        1563
## 22     15   <NA>     17     40    MI        1555
## 23     58     17     37     46    ON        1363
## 24     25     60     44     39    MI        1229
## 25     24     34     10     47    MI        1745
## 26      4      9     32     11    ON        1579
## 27     37     14      6   <NA>    MI        1552
## 28     19     20      8     36    MI        1507
## 29     34     52     48   <NA>    MI        1602
## 30     55     31     61     50    ON        1522
## 31     10     30     50     14    MI        1494
## 32     18     51     26     13    ON        1441
## 33     36     13     15     51    MI        1449
## 34     29     25     11     52    MI        1399
## 35      6     57     52     48    MI        1438
## 36     33   <NA>     16     28    MI        1355
## 37     27   <NA>     23     61    MI         980
## 38     12   <NA>     18     15    MI        1423
## 39     16     44     21     24    MI        1436
## 40     59     21     56     22    MI        1348
## 41     20   <NA>   <NA>   <NA>    MI        1403
## 42     60     61     64     56    MI        1332
## 43     63     59     46     55    MI        1283
## 44     53     39     24     59    MI        1199
## 45     56     63     55     58    MI        1242
## 46     50     64     43     23    MI         377
## 47     61      8     51     25    MI        1362
## 48     52   <NA>     29     35    MI        1382
## 49     64     58   <NA>   <NA>    MI        1291
## 50     46   <NA>     31     30    MI        1056
## 51     57     32     47     33    MI        1011
## 52     48     29     35     34    MI         935
## 53     44   <NA>     57   <NA>    MI        1393
## 54   <NA>     15     59     64    MI        1270
## 55     30   <NA>     45     43    MI        1186
## 56     45   <NA>     40     42    MI        1153
## 57     51     35     53   <NA>    MI        1092
## 58     23     49   <NA>     45    MI         917
## 59     40     43     54     44    MI         853
## 60     42     24   <NA>   <NA>    MI         967
## 61     47     42     30     37    ON         955
## 62   <NA>   <NA>   <NA>   <NA>    MI        1530
## 63     43     45   <NA>   <NA>    MI        1175
## 64     49     46     42     54    MI        1163

List of Opponents

Now that the opponent ID number are available in the Round columns, they will need to be concatenated for later use.

tempTournamentInfo_opponentList <- tempTournamentInfo_parsed %>% rowwise() %>% 
  mutate(opponent_list = paste(na.omit(c_across(Round1:Round7)),collapse = ",")) %>% 
  mutate(opponent_list = strsplit(opponent_list,",")) %>%
  mutate(opponent_list = list(as.integer(opponent_list))) %>%
  mutate(Number = as.integer(Number), Name = trimws(Name),TotalPoints = as.numeric(TotalPoints), State = trimws(State)) 

Create Final Table

I first create the final table structure with an empty data frame. Then, With the opponent list generated above, a FOR loop is created to act like a window function. For each player, a window of their opponents is created, and from there the average opponent rating can be calculated. Finally, all of the information is inserted into the final data table, finalTournamentInfo, and it is exported via the write.csv function. Quotes are set to false, as the assignment suggested the CSV may be loaded into SSMS. Dealing with the excess quotes from the CSV file when imported into SSMS would be cumbersome.

finalTournamentInfo <- data.frame(
  Name = character(),
  State = character(),
  Total_Points = numeric(),
  Pre_Rating = numeric(),
  Avg_Opp_Rating = numeric()
)

for (i in seq_along(tempTournamentInfo_opponentList$Number)) {
  Opp_Rating <- tempTournamentInfo_opponentList %>% 
    filter(Number %in% tempTournamentInfo_opponentList$opponent_list[[i]]) %>% 
    select(pre_rating)
  Opp_Rating <- mean(Opp_Rating$pre_rating)
  new_row <- data.frame(
    Name = tempTournamentInfo_opponentList$Name[i], 
    State = tempTournamentInfo_opponentList$State[i], 
    Total_Points = tempTournamentInfo_opponentList$TotalPoints[i], 
    Pre_Rating= tempTournamentInfo_opponentList$pre_rating[i],
    Avg_Opp_Rating = round(Opp_Rating,digits = 0))
  finalTournamentInfo <- rbind(finalTournamentInfo, new_row)
}

finalTournamentInfo
##                          Name State Total_Points Pre_Rating Avg_Opp_Rating
## 1                    GARY HUA    ON          6.0       1794           1605
## 2             DAKSHESH DARURI    MI          6.0       1553           1469
## 3                ADITYA BAJAJ    MI          6.0       1384           1564
## 4         PATRICK H SCHILLING    MI          5.5       1716           1574
## 5                  HANSHI ZUO    MI          5.5       1655           1501
## 6                 HANSEN SONG    OH          5.0       1686           1519
## 7           GARY DEE SWATHELL    MI          5.0       1649           1372
## 8            EZEKIEL HOUGHTON    MI          5.0       1641           1468
## 9                 STEFANO LEE    ON          5.0       1411           1523
## 10                  ANVIT RAO    MI          5.0       1365           1554
## 11   CAMERON WILLIAM MC LEMAN    MI          4.5       1712           1468
## 12             KENNETH J TACK    MI          4.5       1663           1506
## 13          TORRANCE HENRY JR    MI          4.5       1666           1498
## 14               BRADLEY SHAW    MI          4.5       1610           1515
## 15     ZACHARY JAMES HOUGHTON    MI          4.5       1220           1484
## 16               MIKE NIKITIN    MI          4.0       1604           1386
## 17         RONALD GRZEGORCZYK    MI          4.0       1629           1499
## 18              DAVID SUNDEEN    MI          4.0       1600           1480
## 19               DIPANKAR ROY    MI          4.0       1564           1426
## 20                JASON ZHENG    MI          4.0       1595           1411
## 21              DINH DANG BUI    ON          4.0       1563           1470
## 22           EUGENE L MCCLURE    MI          4.0       1555           1300
## 23                   ALAN BUI    ON          4.0       1363           1214
## 24          MICHAEL R ALDRICH    MI          4.0       1229           1357
## 25           LOREN SCHWIEBERT    MI          3.5       1745           1363
## 26                    MAX ZHU    ON          3.5       1579           1507
## 27             GAURAV GIDWANI    MI          3.5       1552           1222
## 28 SOFIA ADINA STANESCU-BELLU    MI          3.5       1507           1522
## 29           CHIEDOZIE OKORIE    MI          3.5       1602           1314
## 30         GEORGE AVERY JONES    ON          3.5       1522           1144
## 31               RISHI SHETTY    MI          3.5       1494           1260
## 32      JOSHUA PHILIP MATHEWS    ON          3.5       1441           1379
## 33                    JADE GE    MI          3.5       1449           1277
## 34     MICHAEL JEFFERY THOMAS    MI          3.5       1399           1375
## 35           JOSHUA DAVID LEE    MI          3.5       1438           1150
## 36              SIDDHARTH JHA    MI          3.5       1355           1388
## 37       AMIYATOSH PWNANANDAM    MI          3.5        980           1385
## 38                  BRIAN LIU    MI          3.0       1423           1539
## 39              JOEL R HENDON    MI          3.0       1436           1430
## 40               FOREST ZHANG    MI          3.0       1348           1391
## 41        KYLE WILLIAM MURPHY    MI          3.0       1403           1248
## 42                   JARED GE    MI          3.0       1332           1150
## 43          ROBERT GLEN VASEY    MI          3.0       1283           1107
## 44         JUSTIN D SCHILLING    MI          3.0       1199           1327
## 45                  DEREK YAN    MI          3.0       1242           1152
## 46   JACOB ALEXANDER LAVALLEY    MI          3.0        377           1358
## 47                ERIC WRIGHT    MI          2.5       1362           1392
## 48               DANIEL KHAIN    MI          2.5       1382           1356
## 49           MICHAEL J MARTIN    MI          2.5       1291           1286
## 50                 SHIVAM JHA    MI          2.5       1056           1296
## 51             TEJAS AYYAGARI    MI          2.5       1011           1356
## 52                  ETHAN GUO    MI          2.5        935           1495
## 53              JOSE C YBARRA    MI          2.0       1393           1345
## 54                LARRY HODGE    MI          2.0       1270           1206
## 55                  ALEX KONG    MI          2.0       1186           1406
## 56               MARISA RICCI    MI          2.0       1153           1414
## 57                 MICHAEL LU    MI          2.0       1092           1363
## 58               VIRAJ MOHILE    MI          2.0        917           1391
## 59          SEAN M MC CORMICK    MI          2.0        853           1319
## 60                 JULIA SHEN    MI          1.5        967           1330
## 61              JEZZEL FARKAS    ON          1.5        955           1327
## 62              ASHWIN BALAJI    MI          1.0       1530           1186
## 63       THOMAS JOSEPH HOSMER    MI          1.0       1175           1350
## 64                     BEN LI    MI          1.0       1163           1263
write.csv(finalTournamentInfo, file = "C:\\Users\\Kim\\Documents\\Data607\\finalTournamentInfo.csv", quote = FALSE)

Conclusion

This project provided an overview of concepts explored in previous homework. For example, this project required importing data, creating data frames, and filtering data. Regular expression concepts were implemented, such as with extracting the opponent ID from the Round columns and double escaping the pipe delimiter due to its normal use in regular expressions. The concept of a window function was used in the creation of the final table. This project also gave an introduction to the usage of FOR loops in R. For next steps in this project, I would look into a different strategy for finding the average opponent ratings, as manually creating a window seemed unnecessarily roundabout.

Usage of ChatGPT

In this assignment, I found ChatGPT useful in understanding R and R syntax. For instance, when filtering based on the opponent list in the final data table, I was attempting to access the opponent_list via tempTournamentInfo_opponentList$opponent_list[i] instead of tempTournamentInfo_opponentList$opponent_list[[i]]. I created a number list to troubleshoot and compare the structure, and even stored the opponent list value into a vector to see if this would make a difference. I noticed that tempTournamentInfo_opponentList$opponent_list[i] was returning [[1]] before showing the number list, and asked ChatGPT for an explanation with the prompt “Why is [[1]] showing up in my vector created from taking value from df”. Their response clarified to me that the [[1]] was showing up due to the way I was accessing the elements of the data frame. By accessing it with [[i]] instead, I was able to filter based on the opponent_list. As anotherexample, in the creation of the final dataframe I originally used seq_along(tempTournamentInfo_opponentList) instead of seq_along(tempTournamentInfo_opponentList$Number). This instead sequenced along the number of columns rather than rows. I asked ChatGPT “Use seq_along with dataframe” and it showed a section on how to use seq_along() to iterate over rows. Since I am relatively new to R, I also used ChatGPT to help with syntax; for example, I wanted to use modulus in R but did not know with certainty what the modulo operator was (“R modulo operator”). However, this is an instance where the use of ChatGPT was wholly unnecessary as it could have been easily found via a search engine.