Data Acquisition Input file :“tournamentinfo.txt”

txturl <- "https://raw.githubusercontent.com/ZIXIANNOW/DATA607project1/main/tournamentinfo.txt"
rawdata <- read_csv(txturl)
## Rows: 195 Columns: 1
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): -------------------------------------------------------------------...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
rawdata
## # A tibble: 195 × 1
##    ---------------------------------------------------------------------------…¹
##    <chr>                                                                        
##  1 Pair | Player Name                     |Total|Round|Round|Round|Round|Round|…
##  2 Num  | USCF ID / Rtg (Pre->Post)       | Pts |  1  |  2  |  3  |  4  |  5  |…
##  3 ----------------------------------------------------------------------------…
##  4 1 | GARY HUA                        |6.0  |W  39|W  21|W  18|W  14|W   7|D  …
##  5 ON | 15445895 / R: 1794   ->1817     |N:2  |W    |B    |W    |B    |W    |B …
##  6 ----------------------------------------------------------------------------…
##  7 2 | DAKSHESH DARURI                 |6.0  |W  63|W  58|L   4|W  17|W  16|W  …
##  8 MI | 14598900 / R: 1553   ->1663     |N:2  |B    |W    |B    |W    |B    |W …
##  9 ----------------------------------------------------------------------------…
## 10 3 | ADITYA BAJAJ                    |6.0  |L   8|W  61|W  25|W  21|W  11|W  …
## # ℹ 185 more rows
## # ℹ abbreviated name:
## #   ¹​`-----------------------------------------------------------------------------------------`

Then, split data into two data frames

alldata <-read_lines(txturl)
initial_data <- alldata[seq(5,length(alldata),3)]
initial_data
##  [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|"
additional_data <- alldata[seq(6,length(alldata),3)]
additional_data
##  [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    |"

Then, extract required data from each data frame.

Pair_number <- as.integer(str_extract(initial_data, "\\d+"))
Pair_number
##  [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
## [26] 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
## [51] 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Player_name <- str_extract(initial_data, "\\|\\s*([^|]+)\\s*\\|")
Player_name <- trimws(gsub("\\|", "", Player_name))
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"
state <- str_extract(additional_data, "\\b[A-Z]{2}\\b")
state
##  [1] "ON" "MI" "MI" "MI" "MI" "OH" "MI" "MI" "ON" "MI" "MI" "MI" "MI" "MI" "MI"
## [16] "MI" "MI" "MI" "MI" "MI" "ON" "MI" "ON" "MI" "MI" "ON" "MI" "MI" "MI" "ON"
## [31] "MI" "ON" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI"
## [46] "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI" "MI"
## [61] "ON" "MI" "MI" "MI"
Total_pt <- str_extract(initial_data, "\\b\\d+\\.\\d+\\b")
Total_pt
##  [1] "6.0" "6.0" "6.0" "5.5" "5.5" "5.0" "5.0" "5.0" "5.0" "5.0" "4.5" "4.5"
## [13] "4.5" "4.5" "4.5" "4.0" "4.0" "4.0" "4.0" "4.0" "4.0" "4.0" "4.0" "4.0"
## [25] "3.5" "3.5" "3.5" "3.5" "3.5" "3.5" "3.5" "3.5" "3.5" "3.5" "3.5" "3.5"
## [37] "3.5" "3.0" "3.0" "3.0" "3.0" "3.0" "3.0" "3.0" "3.0" "3.0" "2.5" "2.5"
## [49] "2.5" "2.5" "2.5" "2.5" "2.0" "2.0" "2.0" "2.0" "2.0" "2.0" "2.0" "1.5"
## [61] "1.5" "1.0" "1.0" "1.0"
Pre_rating <- as.integer(str_extract(str_extract(additional_data, "[^\\d]\\d{3,4}[^\\d]"), "\\d+"))
Pre_rating
##  [1] 1794 1553 1384 1716 1655 1686 1649 1641 1411 1365 1712 1663 1666 1610 1220
## [16] 1604 1629 1600 1564 1595 1563 1555 1363 1229 1745 1579 1552 1507 1602 1522
## [31] 1494 1441 1449 1399 1438 1355  980 1423 1436 1348 1403 1332 1283 1199 1242
## [46]  377 1362 1382 1291 1056 1011  935 1393 1270 1186 1153 1092  917  853  967
## [61]  955 1530 1175 1163
Opponents <- unlist(str_extract_all(initial_data, "\\|[0-9].*"))
Opponents <- str_replace_all(Opponents, "\\s{1,2}\\|","00|")
Opponents <- str_extract_all(Opponents, "\\s\\d{1,2}")
Opponents
## [[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" " 00" " 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" " 00" " 39" " 2"  " 36" " 00"
## 
## [[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" " 00" " 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"  " 00"
## 
## [[28]]
## [1] " 24" " 4"  " 22" " 19" " 20" " 8"  " 36"
## 
## [[29]]
## [1] " 50" " 6"  " 38" " 34" " 52" " 48" " 00"
## 
## [[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" " 00" " 16" " 28"
## 
## [[37]]
## [1] " 00" " 5"  " 34" " 27" " 00" " 23" " 61"
## 
## [[38]]
## [1] " 11" " 35" " 29" " 12" " 00" " 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" " 00" " 00" " 00"
## 
## [[42]]
## [1] " 12" " 50" " 57" " 60" " 61" " 64" " 56"
## 
## [[43]]
## [1] " 21" " 23" " 24" " 63" " 59" " 46" " 55"
## 
## [[44]]
## [1] " 00" " 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" " 00" " 52" " 00" " 29" " 35"
## 
## [[49]]
## [1] " 26" " 20" " 63" " 64" " 58" " 00" " 00"
## 
## [[50]]
## [1] " 29" " 42" " 33" " 46" " 00" " 31" " 30"
## 
## [[51]]
## [1] " 27" " 45" " 36" " 57" " 32" " 47" " 33"
## 
## [[52]]
## [1] " 30" " 22" " 19" " 48" " 29" " 35" " 34"
## 
## [[53]]
## [1] " 00" " 25" " 00" " 44" " 00" " 57" " 00"
## 
## [[54]]
## [1] " 14" " 39" " 61" " 00" " 15" " 59" " 64"
## 
## [[55]]
## [1] " 62" " 31" " 10" " 30" " 00" " 45" " 43"
## 
## [[56]]
## [1] " 00" " 11" " 35" " 45" " 00" " 40" " 42"
## 
## [[57]]
## [1] " 7"  " 36" " 42" " 51" " 35" " 53" " 00"
## 
## [[58]]
## [1] " 31" " 2"  " 41" " 23" " 49" " 00" " 45"
## 
## [[59]]
## [1] " 41" " 00" " 9"  " 40" " 43" " 54" " 44"
## 
## [[60]]
## [1] " 33" " 34" " 45" " 42" " 24" " 00" " 00"
## 
## [[61]]
## [1] " 32" " 3"  " 54" " 47" " 42" " 30" " 37"
## 
## [[62]]
## [1] " 55" " 00" " 00" " 00" " 00" " 00" " 00"
## 
## [[63]]
## [1] " 2"  " 48" " 49" " 43" " 45" " 00" " 00"
## 
## [[64]]
## [1] " 22" " 30" " 31" " 49" " 46" " 42" " 54"

Calculate average pre rating of opponents in order to prepare additional variable

avgprechessoppoents <- c() 
for (i in c(1:length(Opponents)))
{
  avgprechessoppoents[i] <- round(mean(Pre_rating[as.numeric(Opponents[[i]])]),0)
}
avgprechessoppoents
##  [1] 1605 1469 1564 1574 1501 1519 1372 1468 1523 1554 1468 1506 1498 1515 1484
## [16] 1386 1499 1480 1426 1411 1470 1300 1214 1357 1363 1507 1222 1522 1314 1144
## [31] 1260 1379 1277 1375 1150 1388 1385 1539 1430 1391 1248 1150 1107 1327 1152
## [46] 1358 1392 1356 1286 1296 1356 1495 1345 1206 1406 1414 1363 1391 1319 1330
## [61] 1327 1186 1350 1263

Concatenate all variables as new table

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

Export csv file

write.csv(new_chess_rating, file ="Chess_Rating_List.csv")