library(“stringr”) This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

library("stringr")
## Warning: package 'stringr' was built under R version 3.1.3
setwd("C:\\Users\\Andrew\\Desktop\\Cuny\\Data Acquisition\\Project 1")
chess_grid <- readLines("tournamentinfo.txt")
## Warning in readLines("tournamentinfo.txt"): incomplete final line found on
## 'tournamentinfo.txt'
chess_grid
##   [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] "-----------------------------------------------------------------------------------------"
player_name <- (str_trim(unlist(str_extract_all(chess_grid, "([[:alpha:] ]-?){15,31}"))))[2:65]
player_name
##  [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"
str_count(player_name)
##  [1]  8 15 12 19 10 11 17 16 11  9 24 14 17 12 22 12 18 13 12 11 13 16  8
## [24] 17 16  7 14 26 16 18 12 21  7 22 16 13 20  9 13 12 19  8 17 18  9 24
## [47] 11 12 16 10 14  9 13 11  9 12 10 12 17 10 13 13 20  6
state <- str_trim(unlist(str_extract_all(chess_grid, " MI | ON | OH ")))
state
##  [1] "ON" "MI" "MI" "MI" "MI" "OH" "MI" "MI" "ON" "MI" "MI" "MI" "MI" "MI"
## [15] "MI" "MI" "MI" "MI" "MI" "MI" "ON" "MI" "ON" "MI" "MI" "ON" "MI" "MI"
## [29] "MI" "ON" "MI" "ON" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI"
## [43] "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI"
## [57] "MI" "MI" "MI" "MI" "ON" "MI" "MI" "MI"
str(state)
##  chr [1:64] "ON" "MI" "MI" "MI" "MI" "OH" "MI" "MI" ...
results <- unlist(str_extract_all(chess_grid, "[:digit:][//.][:digit:]"))
results
##  [1] "6.0" "6.0" "6.0" "5.5" "5.5" "5.0" "5.0" "5.0" "5.0" "5.0" "4.5"
## [12] "4.5" "4.5" "4.5" "4.5" "4.0" "4.0" "4.0" "4.0" "4.0" "4.0" "4.0"
## [23] "4.0" "4.0" "3.5" "3.5" "3.5" "3.5" "3.5" "3.5" "3.5" "3.5" "3.5"
## [34] "3.5" "3.5" "3.5" "3.5" "3.0" "3.0" "3.0" "3.0" "3.0" "3.0" "3.0"
## [45] "3.0" "3.0" "2.5" "2.5" "2.5" "2.5" "2.5" "2.5" "2.0" "2.0" "2.0"
## [56] "2.0" "2.0" "2.0" "2.0" "1.5" "1.5" "1.0" "1.0" "1.0"
str(results)
##  chr [1:64] "6.0" "6.0" "6.0" "5.5" "5.5" "5.0" "5.0" ...
#Create vector of play preratings
prerating <- as.integer(sub(pattern = 'R: ', replacement = '', x = unlist(str_extract_all(chess_grid, "R: [[:digit:] ]{4}"))))
prerating
##  [1] 1794 1553 1384 1716 1655 1686 1649 1641 1411 1365 1712 1663 1666 1610
## [15] 1220 1604 1629 1600 1564 1595 1563 1555 1363 1229 1745 1579 1552 1507
## [29] 1602 1522 1494 1441 1449 1399 1438 1355  980 1423 1436 1348 1403 1332
## [43] 1283 1199 1242  377 1362 1382 1291 1056 1011  935 1393 1270 1186 1153
## [57] 1092  917  853  967  955 1530 1175 1163
#add index
names(prerating) <- (1:64)
#Collects rest of string following top row 'total points', with opponent data
opp_dat <- gsub("\\|", " ", str_sub(unlist(str_extract_all(chess_grid, "[:digit:][//.][:digit:][|DLWUXBH[:digit:] ]{44}")), start = 10, end = 47))
opp_dat
##  [1] "39 W  21 W  18 W  14 W   7 D  12 D   4"
##  [2] "63 W  58 L   4 W  17 W  16 W  20 W   7"
##  [3] " 8 W  61 W  25 W  21 W  11 W  13 W  12"
##  [4] "23 D  28 W   2 W  26 D   5 W  19 D   1"
##  [5] "45 W  37 D  12 D  13 D   4 W  14 W  17"
##  [6] "34 D  29 L  11 W  35 D  10 W  27 W  21"
##  [7] "57 W  46 W  13 W  11 L   1 W   9 L   2"
##  [8] " 3 W  32 L  14 L   9 W  47 W  28 W  19"
##  [9] "25 L  18 W  59 W   8 W  26 L   7 W  20"
## [10] "16 L  19 W  55 W  31 D   6 W  25 W  18"
## [11] "38 W  56 W   6 L   7 L   3 W  34 W  26"
## [12] "42 W  33 D   5 W  38 H     D   1 L   3"
## [13] "36 W  27 L   7 D   5 W  33 L   3 W  32"
## [14] "54 W  44 W   8 L   1 D  27 L   5 W  31"
## [15] "19 L  16 W  30 L  22 W  54 W  33 W  38"
## [16] "10 W  15 H     W  39 L   2 W  36 U    "
## [17] "48 W  41 L  26 L   2 W  23 W  22 L   5"
## [18] "47 W   9 L   1 W  32 L  19 W  38 L  10"
## [19] "15 W  10 W  52 D  28 W  18 L   4 L   8"
## [20] "40 W  49 W  23 W  41 W  28 L   2 L   9"
## [21] "43 L   1 W  47 L   3 W  40 W  39 L   6"
## [22] "64 D  52 L  28 W  15 H     L  17 W  40"
## [23] " 4 W  43 L  20 W  58 L  17 W  37 W  46"
## [24] "28 L  47 W  43 L  25 W  60 W  44 W  39"
## [25] " 9 W  53 L   3 W  24 D  34 L  10 W  47"
## [26] "49 W  40 W  17 L   4 L   9 D  32 L  11"
## [27] "51 L  13 W  46 W  37 D  14 L   6 U    "
## [28] "24 D   4 W  22 D  19 L  20 L   8 D  36"
## [29] "50 D   6 L  38 L  34 W  52 W  48 U    "
## [30] "52 D  64 L  15 W  55 L  31 W  61 W  50"
## [31] "58 D  55 W  64 L  10 W  30 W  50 L  14"
## [32] "61 L   8 W  44 L  18 W  51 D  26 L  13"
## [33] "60 L  12 W  50 D  36 L  13 L  15 W  51"
## [34] " 6 W  60 L  37 W  29 D  25 L  11 W  52"
## [35] "46 L  38 W  56 L   6 W  57 D  52 W  48"
## [36] "13 W  57 W  51 D  33 H     L  16 D  28"
## [37] "   L   5 W  34 L  27 H     L  23 W  61"
## [38] "11 W  35 W  29 L  12 H     L  18 L  15"
## [39] " 1 W  54 W  40 L  16 W  44 L  21 L  24"
## [40] "20 L  26 L  39 W  59 L  21 W  56 L  22"
## [41] "59 L  17 W  58 L  20 X     U     U    "
## [42] "12 L  50 L  57 D  60 D  61 W  64 W  56"
## [43] "21 L  23 L  24 W  63 W  59 L  46 W  55"
## [44] "   L  14 L  32 W  53 L  39 L  24 W  59"
## [45] " 5 L  51 D  60 L  56 W  63 D  55 W  58"
## [46] "35 L   7 L  27 L  50 W  64 W  43 L  23"
## [47] "18 W  24 L  21 W  61 L   8 D  51 L  25"
## [48] "17 W  63 H     D  52 H     L  29 L  35"
## [49] "26 L  20 D  63 D  64 W  58 H     U    "
## [50] "29 W  42 L  33 W  46 H     L  31 L  30"
## [51] "27 W  45 L  36 W  57 L  32 D  47 L  33"
## [52] "30 D  22 L  19 D  48 L  29 D  35 L  34"
## [53] "   L  25 H     L  44 U     W  57 U    "
## [54] "14 L  39 L  61 B     L  15 L  59 W  64"
## [55] "62 D  31 L  10 L  30 B     D  45 L  43"
## [56] "   L  11 L  35 W  45 H     L  40 L  42"
## [57] " 7 L  36 W  42 L  51 L  35 L  53 B    "
## [58] "31 L   2 L  41 L  23 L  49 B     L  45"
## [59] "41 B     L   9 L  40 L  43 W  54 L  44"
## [60] "33 L  34 D  45 D  42 L  24 H     U    "
## [61] "32 L   3 W  54 L  47 D  42 L  30 L  37"
## [62] "55 U     U     U     U     U     U    "
## [63] " 2 L  48 D  49 L  43 L  45 H     U    "
## [64] "22 D  30 L  31 D  49 L  46 L  42 L  54"
#Simplifies strings into only opponent numbers
opp_list <- (strsplit(opp_dat, " B  | L  | W  | H  | U  | X  | D  "))
opp_list
## [[1]]
## [1] "39" "21" "18" "14" " 7" "12" " 4"
## 
## [[2]]
## [1] "63" "58" " 4" "17" "16" "20" " 7"
## 
## [[3]]
## [1] " 8" "61" "25" "21" "11" "13" "12"
## 
## [[4]]
## [1] "23" "28" " 2" "26" " 5" "19" " 1"
## 
## [[5]]
## [1] "45" "37" "12" "13" " 4" "14" "17"
## 
## [[6]]
## [1] "34" "29" "11" "35" "10" "27" "21"
## 
## [[7]]
## [1] "57" "46" "13" "11" " 1" " 9" " 2"
## 
## [[8]]
## [1] " 3" "32" "14" " 9" "47" "28" "19"
## 
## [[9]]
## [1] "25" "18" "59" " 8" "26" " 7" "20"
## 
## [[10]]
## [1] "16" "19" "55" "31" " 6" "25" "18"
## 
## [[11]]
## [1] "38" "56" " 6" " 7" " 3" "34" "26"
## 
## [[12]]
## [1] "42" "33" " 5" "38" "  " " 1" " 3"
## 
## [[13]]
## [1] "36" "27" " 7" " 5" "33" " 3" "32"
## 
## [[14]]
## [1] "54" "44" " 8" " 1" "27" " 5" "31"
## 
## [[15]]
## [1] "19" "16" "30" "22" "54" "33" "38"
## 
## [[16]]
## [1] "10" "15" "  " "39" " 2" "36" "  "
## 
## [[17]]
## [1] "48" "41" "26" " 2" "23" "22" " 5"
## 
## [[18]]
## [1] "47" " 9" " 1" "32" "19" "38" "10"
## 
## [[19]]
## [1] "15" "10" "52" "28" "18" " 4" " 8"
## 
## [[20]]
## [1] "40" "49" "23" "41" "28" " 2" " 9"
## 
## [[21]]
## [1] "43" " 1" "47" " 3" "40" "39" " 6"
## 
## [[22]]
## [1] "64" "52" "28" "15" "  " "17" "40"
## 
## [[23]]
## [1] " 4" "43" "20" "58" "17" "37" "46"
## 
## [[24]]
## [1] "28" "47" "43" "25" "60" "44" "39"
## 
## [[25]]
## [1] " 9" "53" " 3" "24" "34" "10" "47"
## 
## [[26]]
## [1] "49" "40" "17" " 4" " 9" "32" "11"
## 
## [[27]]
## [1] "51" "13" "46" "37" "14" " 6" "  "
## 
## [[28]]
## [1] "24" " 4" "22" "19" "20" " 8" "36"
## 
## [[29]]
## [1] "50" " 6" "38" "34" "52" "48" "  "
## 
## [[30]]
## [1] "52" "64" "15" "55" "31" "61" "50"
## 
## [[31]]
## [1] "58" "55" "64" "10" "30" "50" "14"
## 
## [[32]]
## [1] "61" " 8" "44" "18" "51" "26" "13"
## 
## [[33]]
## [1] "60" "12" "50" "36" "13" "15" "51"
## 
## [[34]]
## [1] " 6" "60" "37" "29" "25" "11" "52"
## 
## [[35]]
## [1] "46" "38" "56" " 6" "57" "52" "48"
## 
## [[36]]
## [1] "13" "57" "51" "33" "  " "16" "28"
## 
## [[37]]
## [1] "  " " 5" "34" "27" "  " "23" "61"
## 
## [[38]]
## [1] "11" "35" "29" "12" "  " "18" "15"
## 
## [[39]]
## [1] " 1" "54" "40" "16" "44" "21" "24"
## 
## [[40]]
## [1] "20" "26" "39" "59" "21" "56" "22"
## 
## [[41]]
## [1] "59" "17" "58" "20" "  " "  " "  "
## 
## [[42]]
## [1] "12" "50" "57" "60" "61" "64" "56"
## 
## [[43]]
## [1] "21" "23" "24" "63" "59" "46" "55"
## 
## [[44]]
## [1] "  " "14" "32" "53" "39" "24" "59"
## 
## [[45]]
## [1] " 5" "51" "60" "56" "63" "55" "58"
## 
## [[46]]
## [1] "35" " 7" "27" "50" "64" "43" "23"
## 
## [[47]]
## [1] "18" "24" "21" "61" " 8" "51" "25"
## 
## [[48]]
## [1] "17" "63" "  " "52" "  " "29" "35"
## 
## [[49]]
## [1] "26" "20" "63" "64" "58" "  " "  "
## 
## [[50]]
## [1] "29" "42" "33" "46" "  " "31" "30"
## 
## [[51]]
## [1] "27" "45" "36" "57" "32" "47" "33"
## 
## [[52]]
## [1] "30" "22" "19" "48" "29" "35" "34"
## 
## [[53]]
## [1] "  " "25" "  " "44" "  " "57" "  "
## 
## [[54]]
## [1] "14" "39" "61" "  " "15" "59" "64"
## 
## [[55]]
## [1] "62" "31" "10" "30" "  " "45" "43"
## 
## [[56]]
## [1] "  " "11" "35" "45" "  " "40" "42"
## 
## [[57]]
## [1] " 7" "36" "42" "51" "35" "53" "  "
## 
## [[58]]
## [1] "31" " 2" "41" "23" "49" "  " "45"
## 
## [[59]]
## [1] "41" "  " " 9" "40" "43" "54" "44"
## 
## [[60]]
## [1] "33" "34" "45" "42" "24" "  " "  "
## 
## [[61]]
## [1] "32" " 3" "54" "47" "42" "30" "37"
## 
## [[62]]
## [1] "55" "  " "  " "  " "  " "  " "  "
## 
## [[63]]
## [1] " 2" "48" "49" "43" "45" "  " "  "
## 
## [[64]]
## [1] "22" "30" "31" "49" "46" "42" "54"
#simplifies list into numeric matrix of opponent numbers
opp_mtx <- sapply(opp_list, as.numeric)
head(opp_mtx)
##      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13]
## [1,]   39   63    8   23   45   34   57    3   25    16    38    42    36
## [2,]   21   58   61   28   37   29   46   32   18    19    56    33    27
## [3,]   18    4   25    2   12   11   13   14   59    55     6     5     7
## [4,]   14   17   21   26   13   35   11    9    8    31     7    38     5
## [5,]    7   16   11    5    4   10    1   47   26     6     3    NA    33
## [6,]   12   20   13   19   14   27    9   28    7    25    34     1     3
##      [,14] [,15] [,16] [,17] [,18] [,19] [,20] [,21] [,22] [,23] [,24]
## [1,]    54    19    10    48    47    15    40    43    64     4    28
## [2,]    44    16    15    41     9    10    49     1    52    43    47
## [3,]     8    30    NA    26     1    52    23    47    28    20    43
## [4,]     1    22    39     2    32    28    41     3    15    58    25
## [5,]    27    54     2    23    19    18    28    40    NA    17    60
## [6,]     5    33    36    22    38     4     2    39    17    37    44
##      [,25] [,26] [,27] [,28] [,29] [,30] [,31] [,32] [,33] [,34] [,35]
## [1,]     9    49    51    24    50    52    58    61    60     6    46
## [2,]    53    40    13     4     6    64    55     8    12    60    38
## [3,]     3    17    46    22    38    15    64    44    50    37    56
## [4,]    24     4    37    19    34    55    10    18    36    29     6
## [5,]    34     9    14    20    52    31    30    51    13    25    57
## [6,]    10    32     6     8    48    61    50    26    15    11    52
##      [,36] [,37] [,38] [,39] [,40] [,41] [,42] [,43] [,44] [,45] [,46]
## [1,]    13    NA    11     1    20    59    12    21    NA     5    35
## [2,]    57     5    35    54    26    17    50    23    14    51     7
## [3,]    51    34    29    40    39    58    57    24    32    60    27
## [4,]    33    27    12    16    59    20    60    63    53    56    50
## [5,]    NA    NA    NA    44    21    NA    61    59    39    63    64
## [6,]    16    23    18    21    56    NA    64    46    24    55    43
##      [,47] [,48] [,49] [,50] [,51] [,52] [,53] [,54] [,55] [,56] [,57]
## [1,]    18    17    26    29    27    30    NA    14    62    NA     7
## [2,]    24    63    20    42    45    22    25    39    31    11    36
## [3,]    21    NA    63    33    36    19    NA    61    10    35    42
## [4,]    61    52    64    46    57    48    44    NA    30    45    51
## [5,]     8    NA    58    NA    32    29    NA    15    NA    NA    35
## [6,]    51    29    NA    31    47    35    57    59    45    40    53
##      [,58] [,59] [,60] [,61] [,62] [,63] [,64]
## [1,]    31    41    33    32    55     2    22
## [2,]     2    NA    34     3    NA    48    30
## [3,]    41     9    45    54    NA    49    31
## [4,]    23    40    42    47    NA    43    49
## [5,]    49    43    24    42    NA    45    46
## [6,]    NA    54    NA    30    NA    NA    42
#creates matrix of correlating preratings
opp_rating_mtx <- matrix(prerating[opp_mtx], nrow = 7)
opp_rating_mtx
##      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13]
## [1,] 1436 1175 1641 1363 1242 1399 1092 1384 1745  1604  1423  1332  1355
## [2,] 1563  917  955 1507  980 1602  377 1441 1600  1564  1153  1449  1552
## [3,] 1600 1716 1745 1553 1663 1712 1666 1610  853  1186  1686  1655  1649
## [4,] 1610 1629 1563 1579 1666 1438 1712 1411 1641  1494  1649  1423  1655
## [5,] 1649 1604 1712 1655 1716 1365 1794 1362 1579  1686  1384    NA  1449
## [6,] 1663 1595 1666 1564 1610 1552 1411 1507 1649  1745  1399  1794  1384
## [7,] 1716 1649 1663 1794 1629 1563 1553 1564 1595  1600  1579  1384  1441
##      [,14] [,15] [,16] [,17] [,18] [,19] [,20] [,21] [,22] [,23] [,24]
## [1,]  1270  1564  1365  1382  1362  1220  1348  1283  1163  1716  1507
## [2,]  1199  1604  1220  1403  1411  1365  1291  1794   935  1283  1362
## [3,]  1641  1522    NA  1579  1794   935  1363  1362  1507  1595  1283
## [4,]  1794  1555  1436  1553  1441  1507  1403  1384  1220   917  1745
## [5,]  1552  1270  1553  1363  1564  1600  1507  1348    NA  1629   967
## [6,]  1655  1449  1355  1555  1423  1716  1553  1436  1629   980  1199
## [7,]  1494  1423    NA  1655  1365  1641  1411  1686  1348   377  1436
##      [,25] [,26] [,27] [,28] [,29] [,30] [,31] [,32] [,33] [,34] [,35]
## [1,]  1411  1291  1011  1229  1056   935   917   955   967  1686   377
## [2,]  1393  1348  1666  1716  1686  1163  1186  1641  1663   967  1423
## [3,]  1384  1629   377  1555  1423  1220  1163  1199  1056   980  1153
## [4,]  1229  1716   980  1564  1399  1186  1365  1600  1355  1602  1686
## [5,]  1399  1411  1610  1595   935  1494  1522  1011  1666  1745  1092
## [6,]  1365  1441  1686  1641  1382   955  1056  1579  1220  1712   935
## [7,]  1362  1712    NA  1355    NA  1056  1610  1666  1011   935  1382
##      [,36] [,37] [,38] [,39] [,40] [,41] [,42] [,43] [,44] [,45] [,46]
## [1,]  1666    NA  1712  1794  1595   853  1663  1563    NA  1655  1438
## [2,]  1092  1655  1438  1270  1579  1629  1056  1363  1610  1011  1649
## [3,]  1011  1399  1602  1348  1436   917  1092  1229  1441   967  1552
## [4,]  1449  1552  1663  1604   853  1595   967  1175  1393  1153  1056
## [5,]    NA    NA    NA  1199  1563    NA   955   853  1436  1175  1163
## [6,]  1604  1363  1600  1563  1153    NA  1163   377  1229  1186  1283
## [7,]  1507   955  1220  1229  1555    NA  1153  1186   853   917  1363
##      [,47] [,48] [,49] [,50] [,51] [,52] [,53] [,54] [,55] [,56] [,57]
## [1,]  1600  1629  1579  1602  1552  1522    NA  1610  1530    NA  1649
## [2,]  1229  1175  1595  1332  1242  1555  1745  1436  1494  1712  1355
## [3,]  1563    NA  1175  1449  1355  1564    NA   955  1365  1438  1332
## [4,]   955   935  1163   377  1092  1382  1199    NA  1522  1242  1011
## [5,]  1641    NA   917    NA  1441  1602    NA  1220    NA    NA  1438
## [6,]  1011  1602    NA  1494  1362  1438  1092   853  1242  1348  1393
## [7,]  1745  1438    NA  1522  1449  1399    NA  1163  1283  1332    NA
##      [,58] [,59] [,60] [,61] [,62] [,63] [,64]
## [1,]  1494  1403  1449  1441  1186  1553  1555
## [2,]  1553    NA  1399  1384    NA  1382  1522
## [3,]  1403  1411  1242  1270    NA  1291  1494
## [4,]  1363  1348  1332  1362    NA  1283  1291
## [5,]  1291  1283  1229  1332    NA  1242   377
## [6,]    NA  1270    NA  1522    NA    NA  1332
## [7,]  1242  1199    NA   980    NA    NA  1270
#creates vector of averaged preratings
opp_avg_prerating <- apply(opp_rating_mtx, 2, mean, na.rm = TRUE)
opp_avg_prerating
##  [1] 1605.286 1469.286 1563.571 1573.571 1500.857 1518.714 1372.143
##  [8] 1468.429 1523.143 1554.143 1467.571 1506.167 1497.857 1515.000
## [15] 1483.857 1385.800 1498.571 1480.000 1426.286 1410.857 1470.429
## [22] 1300.333 1213.857 1357.000 1363.286 1506.857 1221.667 1522.143
## [29] 1313.500 1144.143 1259.857 1378.714 1276.857 1375.286 1149.714
## [36] 1388.167 1384.800 1539.167 1429.571 1390.571 1248.500 1149.857
## [43] 1106.571 1327.000 1152.000 1357.714 1392.000 1355.800 1285.800
## [50] 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
## [64] 1263.000
tourn_results <- data.frame(player_name, state, results, prerating, opp_avg_prerating)

head(tourn_results)
##           player_name state results prerating opp_avg_prerating
## 1            GARY HUA    ON     6.0      1794          1605.286
## 2     DAKSHESH DARURI    MI     6.0      1553          1469.286
## 3        ADITYA BAJAJ    MI     6.0      1384          1563.571
## 4 PATRICK H SCHILLING    MI     5.5      1716          1573.571
## 5          HANSHI ZUO    MI     5.5      1655          1500.857
## 6         HANSEN SONG    OH     5.0      1686          1518.714