Load data set from Github repo

chess_raw <- read.delim("https://raw.githubusercontent.com/humbertohpgit/MSDS1stSem/master/chess_raw.txt", header = FALSE, sep = "\t", stringsAsFactors=FALSE)
chess_raw
##                                                                                             V1
## 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  -----------------------------------------------------------------------------------------
is(chess_raw)
## [1] "data.frame" "list"       "oldClass"   "vector"
library(stringr)

Extract & format Full Names

playernames <- data.frame(str_extract_all(chess_raw, "[[:upper:]]{3,} [[:upper:]]{1,} [[:upper:]]{0,}[ -][[:upper:]]{0,}"), stringsAsFactors=FALSE)
playernamesfmt <- data.frame(lapply(playernames, function(x) paste(x, ",")), stringsAsFactors=FALSE)
names(playernamesfmt) <- "PlayerName"
playernamesfmt
##                      PlayerName
## 1                  GARY HUA   ,
## 2           DAKSHESH DARURI   ,
## 3              ADITYA BAJAJ   ,
## 4        PATRICK H SCHILLING  ,
## 5                HANSHI ZUO   ,
## 6               HANSEN SONG   ,
## 7          GARY DEE SWATHELL  ,
## 8          EZEKIEL HOUGHTON   ,
## 9               STEFANO LEE   ,
## 10                ANVIT RAO   ,
## 11   CAMERON WILLIAM MC LEMAN ,
## 12            KENNETH J TACK  ,
## 13         TORRANCE HENRY JR  ,
## 14             BRADLEY SHAW   ,
## 15    ZACHARY JAMES HOUGHTON  ,
## 16             MIKE NIKITIN   ,
## 17       RONALD GRZEGORCZYK   ,
## 18            DAVID SUNDEEN   ,
## 19             DIPANKAR ROY   ,
## 20              JASON ZHENG   ,
## 21             DINH DANG BUI  ,
## 22          EUGENE L MCCLURE  ,
## 23                 ALAN BUI   ,
## 24         MICHAEL R ALDRICH  ,
## 25         LOREN SCHWIEBERT   ,
## 26                  MAX ZHU   ,
## 27           GAURAV GIDWANI   ,
## 28 SOFIA ADINA STANESCU-BELLU ,
## 29         CHIEDOZIE OKORIE   ,
## 30        GEORGE AVERY JONES  ,
## 31             RISHI SHETTY   ,
## 32     JOSHUA PHILIP MATHEWS  ,
## 33                  JADE GE   ,
## 34    MICHAEL JEFFERY THOMAS  ,
## 35          JOSHUA DAVID LEE  ,
## 36            SIDDHARTH JHA   ,
## 37     AMIYATOSH PWNANANDAM   ,
## 38                BRIAN LIU   ,
## 39             JOEL R HENDON  ,
## 40             FOREST ZHANG   ,
## 41       KYLE WILLIAM MURPHY  ,
## 42                 JARED GE   ,
## 43         ROBERT GLEN VASEY  ,
## 44        JUSTIN D SCHILLING  ,
## 45                DEREK YAN   ,
## 46  JACOB ALEXANDER LAVALLEY  ,
## 47              ERIC WRIGHT   ,
## 48             DANIEL KHAIN   ,
## 49          MICHAEL J MARTIN  ,
## 50               SHIVAM JHA   ,
## 51           TEJAS AYYAGARI   ,
## 52                ETHAN GUO   ,
## 53             JOSE C YBARRA  ,
## 54              LARRY HODGE   ,
## 55                ALEX KONG   ,
## 56             MARISA RICCI   ,
## 57               MICHAEL LU   ,
## 58             VIRAJ MOHILE   ,
## 59          SEAN M MC CORMICK ,
## 60               JULIA SHEN   ,
## 61            JEZZEL FARKAS   ,
## 62            ASHWIN BALAJI   ,
## 63      THOMAS JOSEPH HOSMER  ,
## 64                   BEN LI   ,

Extract & format States

playerstates <- str_extract_all(chess_raw, "[[:upper:]]{2} \\|")
playerstatesfmt <- data.frame(str_extract_all(playerstates, "[[:alpha:]]{2}"), stringsAsFactors=FALSE)
playerstatesfmt2 <- data.frame(lapply(playerstatesfmt, function(x) paste(x, ",")), stringsAsFactors=FALSE)
names(playerstatesfmt2) <- "PlayerState"
playerstatesfmt2
##    PlayerState
## 1         ON ,
## 2         MI ,
## 3         MI ,
## 4         MI ,
## 5         MI ,
## 6         OH ,
## 7         MI ,
## 8         MI ,
## 9         ON ,
## 10        MI ,
## 11        MI ,
## 12        MI ,
## 13        MI ,
## 14        MI ,
## 15        MI ,
## 16        MI ,
## 17        MI ,
## 18        MI ,
## 19        MI ,
## 20        MI ,
## 21        ON ,
## 22        MI ,
## 23        ON ,
## 24        MI ,
## 25        MI ,
## 26        ON ,
## 27        MI ,
## 28        MI ,
## 29        MI ,
## 30        ON ,
## 31        MI ,
## 32        ON ,
## 33        MI ,
## 34        MI ,
## 35        MI ,
## 36        MI ,
## 37        MI ,
## 38        MI ,
## 39        MI ,
## 40        MI ,
## 41        MI ,
## 42        MI ,
## 43        MI ,
## 44        MI ,
## 45        MI ,
## 46        MI ,
## 47        MI ,
## 48        MI ,
## 49        MI ,
## 50        MI ,
## 51        MI ,
## 52        MI ,
## 53        MI ,
## 54        MI ,
## 55        MI ,
## 56        MI ,
## 57        MI ,
## 58        MI ,
## 59        MI ,
## 60        MI ,
## 61        ON ,
## 62        MI ,
## 63        MI ,
## 64        MI ,

Extract & format Total Points

playerpoints <- data.frame(str_extract_all(chess_raw, "[0-9]\\.[0-9]"), stringsAsFactors=FALSE)
playerpointsfmt <- data.frame(lapply(playerpoints, function(x) paste(x, ",")), stringsAsFactors=FALSE)
names(playerpointsfmt) <- "PlayerPoints"
playerpointsfmt
##    PlayerPoints
## 1         6.0 ,
## 2         6.0 ,
## 3         6.0 ,
## 4         5.5 ,
## 5         5.5 ,
## 6         5.0 ,
## 7         5.0 ,
## 8         5.0 ,
## 9         5.0 ,
## 10        5.0 ,
## 11        4.5 ,
## 12        4.5 ,
## 13        4.5 ,
## 14        4.5 ,
## 15        4.5 ,
## 16        4.0 ,
## 17        4.0 ,
## 18        4.0 ,
## 19        4.0 ,
## 20        4.0 ,
## 21        4.0 ,
## 22        4.0 ,
## 23        4.0 ,
## 24        4.0 ,
## 25        3.5 ,
## 26        3.5 ,
## 27        3.5 ,
## 28        3.5 ,
## 29        3.5 ,
## 30        3.5 ,
## 31        3.5 ,
## 32        3.5 ,
## 33        3.5 ,
## 34        3.5 ,
## 35        3.5 ,
## 36        3.5 ,
## 37        3.5 ,
## 38        3.0 ,
## 39        3.0 ,
## 40        3.0 ,
## 41        3.0 ,
## 42        3.0 ,
## 43        3.0 ,
## 44        3.0 ,
## 45        3.0 ,
## 46        3.0 ,
## 47        2.5 ,
## 48        2.5 ,
## 49        2.5 ,
## 50        2.5 ,
## 51        2.5 ,
## 52        2.5 ,
## 53        2.0 ,
## 54        2.0 ,
## 55        2.0 ,
## 56        2.0 ,
## 57        2.0 ,
## 58        2.0 ,
## 59        2.0 ,
## 60        1.5 ,
## 61        1.5 ,
## 62        1.0 ,
## 63        1.0 ,
## 64        1.0 ,

Extract & format Pre-Rating

playerprerating <- str_extract_all(chess_raw, "R:[[:space:]]{1,}[[:alnum:]]{3,}[[:space:]]{0,}")
playerpreratingfmt <- data.frame(str_extract_all(playerprerating, " [[:alnum:]]{3,}"), stringsAsFactors=FALSE)
playerpreratingfmt2 <- data.frame(lapply(playerpreratingfmt, function(x) paste(x, ",")), stringsAsFactors=FALSE)
names(playerpreratingfmt2) <- "PlayerPreRating"
playerpreratingfmt2
##    PlayerPreRating
## 1           1794 ,
## 2           1553 ,
## 3           1384 ,
## 4           1716 ,
## 5           1655 ,
## 6           1686 ,
## 7           1649 ,
## 8        1641P17 ,
## 9           1411 ,
## 10          1365 ,
## 11          1712 ,
## 12          1663 ,
## 13          1666 ,
## 14          1610 ,
## 15       1220P13 ,
## 16          1604 ,
## 17          1629 ,
## 18          1600 ,
## 19          1564 ,
## 20          1595 ,
## 21       1563P22 ,
## 22          1555 ,
## 23          1363 ,
## 24          1229 ,
## 25          1745 ,
## 26          1579 ,
## 27          1552 ,
## 28          1507 ,
## 29        1602P6 ,
## 30          1522 ,
## 31          1494 ,
## 32          1441 ,
## 33          1449 ,
## 34          1399 ,
## 35          1438 ,
## 36          1355 ,
## 37        980P12 ,
## 38          1423 ,
## 39       1436P23 ,
## 40          1348 ,
## 41        1403P5 ,
## 42          1332 ,
## 43          1283 ,
## 44          1199 ,
## 45          1242 ,
## 46         377P3 ,
## 47          1362 ,
## 48          1382 ,
## 49       1291P12 ,
## 50          1056 ,
## 51          1011 ,
## 52           935 ,
## 53          1393 ,
## 54          1270 ,
## 55          1186 ,
## 56          1153 ,
## 57          1092 ,
## 58           917 ,
## 59           853 ,
## 60           967 ,
## 61        955P11 ,
## 62          1530 ,
## 63          1175 ,
## 64          1163 ,

Extract and Calculate Avg. Pre Rating of Opponents

Extract Opponents for each Player

opps <- str_extract_all(chess_raw, "\\|[1-6]\\.[0-5]  \\|[WDLHUBX][[:print:]]{1,4}\\|[WDLHUBX][[:print:]]{1,4}\\|[WDLHUBX][[:print:]]{1,4}\\|[WDLHUBX][[:print:]]{1,4}\\|[WDLHUBX][[:print:]]{1,4}\\|[WDLHUBX][[:print:]]{1,4}\\|[WDLHUBX][[:print:]]{1,4}\\|")
opps2 <- str_extract_all(opps, "\\|[WDLHUBX][[:print:]]{1,4}\\|[WDLHUBX][[:print:]]{1,4}\\|[WDLHUBX][[:print:]]{1,4}\\|[WDLHUBX][[:print:]]{1,4}\\|[WDLHUBX][[:print:]]{1,4}\\|[WDLHUBX][[:print:]]{1,4}\\|[WDLHUBX][[:print:]]{1,4}\\|")
opps2 <- data.frame(opps2, stringsAsFactors=FALSE)
names(opps2) <- "Opps"
opps3 <- lapply(opps2, function(x) str_extract_all(x, "[[:digit:]]{1,2}"))
opps3
## $Opps
## $Opps[[1]]
## [1] "39" "21" "18" "14" "7"  "12" "4" 
## 
## $Opps[[2]]
## [1] "63" "58" "4"  "17" "16" "20" "7" 
## 
## $Opps[[3]]
## [1] "8"  "61" "25" "21" "11" "13" "12"
## 
## $Opps[[4]]
## [1] "23" "28" "2"  "26" "5"  "19" "1" 
## 
## $Opps[[5]]
## [1] "45" "37" "12" "13" "4"  "14" "17"
## 
## $Opps[[6]]
## [1] "34" "29" "11" "35" "10" "27" "21"
## 
## $Opps[[7]]
## [1] "57" "46" "13" "11" "1"  "9"  "2" 
## 
## $Opps[[8]]
## [1] "3"  "32" "14" "9"  "47" "28" "19"
## 
## $Opps[[9]]
## [1] "25" "18" "59" "8"  "26" "7"  "20"
## 
## $Opps[[10]]
## [1] "16" "19" "55" "31" "6"  "25" "18"
## 
## $Opps[[11]]
## [1] "38" "56" "6"  "7"  "3"  "34" "26"
## 
## $Opps[[12]]
## [1] "42" "33" "5"  "38" "1"  "3" 
## 
## $Opps[[13]]
## [1] "36" "27" "7"  "5"  "33" "3"  "32"
## 
## $Opps[[14]]
## [1] "54" "44" "8"  "1"  "27" "5"  "31"
## 
## $Opps[[15]]
## [1] "19" "16" "30" "22" "54" "33" "38"
## 
## $Opps[[16]]
## [1] "10" "15" "39" "2"  "36"
## 
## $Opps[[17]]
## [1] "48" "41" "26" "2"  "23" "22" "5" 
## 
## $Opps[[18]]
## [1] "47" "9"  "1"  "32" "19" "38" "10"
## 
## $Opps[[19]]
## [1] "15" "10" "52" "28" "18" "4"  "8" 
## 
## $Opps[[20]]
## [1] "40" "49" "23" "41" "28" "2"  "9" 
## 
## $Opps[[21]]
## [1] "43" "1"  "47" "3"  "40" "39" "6" 
## 
## $Opps[[22]]
## [1] "64" "52" "28" "15" "17" "40"
## 
## $Opps[[23]]
## [1] "4"  "43" "20" "58" "17" "37" "46"
## 
## $Opps[[24]]
## [1] "28" "47" "43" "25" "60" "44" "39"
## 
## $Opps[[25]]
## [1] "9"  "53" "3"  "24" "34" "10" "47"
## 
## $Opps[[26]]
## [1] "49" "40" "17" "4"  "9"  "32" "11"
## 
## $Opps[[27]]
## [1] "51" "13" "46" "37" "14" "6" 
## 
## $Opps[[28]]
## [1] "24" "4"  "22" "19" "20" "8"  "36"
## 
## $Opps[[29]]
## [1] "50" "6"  "38" "34" "52" "48"
## 
## $Opps[[30]]
## [1] "52" "64" "15" "55" "31" "61" "50"
## 
## $Opps[[31]]
## [1] "58" "55" "64" "10" "30" "50" "14"
## 
## $Opps[[32]]
## [1] "61" "8"  "44" "18" "51" "26" "13"
## 
## $Opps[[33]]
## [1] "60" "12" "50" "36" "13" "15" "51"
## 
## $Opps[[34]]
## [1] "6"  "60" "37" "29" "25" "11" "52"
## 
## $Opps[[35]]
## [1] "46" "38" "56" "6"  "57" "52" "48"
## 
## $Opps[[36]]
## [1] "13" "57" "51" "33" "16" "28"
## 
## $Opps[[37]]
## [1] "5"  "34" "27" "23" "61"
## 
## $Opps[[38]]
## [1] "11" "35" "29" "12" "18" "15"
## 
## $Opps[[39]]
## [1] "1"  "54" "40" "16" "44" "21" "24"
## 
## $Opps[[40]]
## [1] "20" "26" "39" "59" "21" "56" "22"
## 
## $Opps[[41]]
## [1] "59" "17" "58" "20"
## 
## $Opps[[42]]
## [1] "12" "50" "57" "60" "61" "64" "56"
## 
## $Opps[[43]]
## [1] "21" "23" "24" "63" "59" "46" "55"
## 
## $Opps[[44]]
## [1] "14" "32" "53" "39" "24" "59"
## 
## $Opps[[45]]
## [1] "5"  "51" "60" "56" "63" "55" "58"
## 
## $Opps[[46]]
## [1] "35" "7"  "27" "50" "64" "43" "23"
## 
## $Opps[[47]]
## [1] "18" "24" "21" "61" "8"  "51" "25"
## 
## $Opps[[48]]
## [1] "17" "63" "52" "29" "35"
## 
## $Opps[[49]]
## [1] "26" "20" "63" "64" "58"
## 
## $Opps[[50]]
## [1] "29" "42" "33" "46" "31" "30"
## 
## $Opps[[51]]
## [1] "27" "45" "36" "57" "32" "47" "33"
## 
## $Opps[[52]]
## [1] "30" "22" "19" "48" "29" "35" "34"
## 
## $Opps[[53]]
## [1] "25" "44" "57"
## 
## $Opps[[54]]
## [1] "14" "39" "61" "15" "59" "64"
## 
## $Opps[[55]]
## [1] "62" "31" "10" "30" "45" "43"
## 
## $Opps[[56]]
## [1] "11" "35" "45" "40" "42"
## 
## $Opps[[57]]
## [1] "7"  "36" "42" "51" "35" "53"
## 
## $Opps[[58]]
## [1] "31" "2"  "41" "23" "49" "45"
## 
## $Opps[[59]]
## [1] "41" "9"  "40" "43" "54" "44"
## 
## $Opps[[60]]
## [1] "33" "34" "45" "42" "24"
## 
## $Opps[[61]]
## [1] "32" "3"  "54" "47" "42" "30" "37"
## 
## $Opps[[62]]
## [1] "55"
## 
## $Opps[[63]]
## [1] "2"  "48" "49" "43" "45"
## 
## $Opps[[64]]
## [1] "22" "30" "31" "49" "46" "42" "54"

Build table of PreRatings for each Player/Opponent

plyrpreratcalc <- data.frame(str_extract_all(playerprerating, " [[:digit:]]{3,}"), stringsAsFactors=FALSE)
plyrpreratcalcfmt <- data.frame(cbind(c(1:64), plyrpreratcalc))
names(plyrpreratcalcfmt) <- c("Player", "PlayerPreRating")
plyrpreratcalcfmt$PlayerPreRating <- as.numeric(plyrpreratcalcfmt$PlayerPreRating)
plyrpreratcalcfmt
##    Player PlayerPreRating
## 1       1            1794
## 2       2            1553
## 3       3            1384
## 4       4            1716
## 5       5            1655
## 6       6            1686
## 7       7            1649
## 8       8            1641
## 9       9            1411
## 10     10            1365
## 11     11            1712
## 12     12            1663
## 13     13            1666
## 14     14            1610
## 15     15            1220
## 16     16            1604
## 17     17            1629
## 18     18            1600
## 19     19            1564
## 20     20            1595
## 21     21            1563
## 22     22            1555
## 23     23            1363
## 24     24            1229
## 25     25            1745
## 26     26            1579
## 27     27            1552
## 28     28            1507
## 29     29            1602
## 30     30            1522
## 31     31            1494
## 32     32            1441
## 33     33            1449
## 34     34            1399
## 35     35            1438
## 36     36            1355
## 37     37             980
## 38     38            1423
## 39     39            1436
## 40     40            1348
## 41     41            1403
## 42     42            1332
## 43     43            1283
## 44     44            1199
## 45     45            1242
## 46     46             377
## 47     47            1362
## 48     48            1382
## 49     49            1291
## 50     50            1056
## 51     51            1011
## 52     52             935
## 53     53            1393
## 54     54            1270
## 55     55            1186
## 56     56            1153
## 57     57            1092
## 58     58             917
## 59     59             853
## 60     60             967
## 61     61             955
## 62     62            1530
## 63     63            1175
## 64     64            1163

Build table of Opponents for each Player

opps5 <- c(0,0)
for(i in 1:64){
opps4 <- data.frame(cbind(i, as.numeric(opps3$Opps[[i]])))
opps5 <- rbind(opps5, opps4)
}
names(opps5) <- c("Player", "Opps")
opps5 <- opps5[-1,]
opps5
##     Player Opps
## 2        1   39
## 3        1   21
## 4        1   18
## 5        1   14
## 6        1    7
## 7        1   12
## 8        1    4
## 9        2   63
## 10       2   58
## 11       2    4
## 12       2   17
## 13       2   16
## 14       2   20
## 15       2    7
## 16       3    8
## 17       3   61
## 18       3   25
## 19       3   21
## 20       3   11
## 21       3   13
## 22       3   12
## 23       4   23
## 24       4   28
## 25       4    2
## 26       4   26
## 27       4    5
## 28       4   19
## 29       4    1
## 30       5   45
## 31       5   37
## 32       5   12
## 33       5   13
## 34       5    4
## 35       5   14
## 36       5   17
## 37       6   34
## 38       6   29
## 39       6   11
## 40       6   35
## 41       6   10
## 42       6   27
## 43       6   21
## 44       7   57
## 45       7   46
## 46       7   13
## 47       7   11
## 48       7    1
## 49       7    9
## 50       7    2
## 51       8    3
## 52       8   32
## 53       8   14
## 54       8    9
## 55       8   47
## 56       8   28
## 57       8   19
## 58       9   25
## 59       9   18
## 60       9   59
## 61       9    8
## 62       9   26
## 63       9    7
## 64       9   20
## 65      10   16
## 66      10   19
## 67      10   55
## 68      10   31
## 69      10    6
## 70      10   25
## 71      10   18
## 72      11   38
## 73      11   56
## 74      11    6
## 75      11    7
## 76      11    3
## 77      11   34
## 78      11   26
## 79      12   42
## 80      12   33
## 81      12    5
## 82      12   38
## 83      12    1
## 84      12    3
## 85      13   36
## 86      13   27
## 87      13    7
## 88      13    5
## 89      13   33
## 90      13    3
## 91      13   32
## 92      14   54
## 93      14   44
## 94      14    8
## 95      14    1
## 96      14   27
## 97      14    5
## 98      14   31
## 99      15   19
## 100     15   16
## 101     15   30
## 102     15   22
## 103     15   54
## 104     15   33
## 105     15   38
## 106     16   10
## 107     16   15
## 108     16   39
## 109     16    2
## 110     16   36
## 111     17   48
## 112     17   41
## 113     17   26
## 114     17    2
## 115     17   23
## 116     17   22
## 117     17    5
## 118     18   47
## 119     18    9
## 120     18    1
## 121     18   32
## 122     18   19
## 123     18   38
## 124     18   10
## 125     19   15
## 126     19   10
## 127     19   52
## 128     19   28
## 129     19   18
## 130     19    4
## 131     19    8
## 132     20   40
## 133     20   49
## 134     20   23
## 135     20   41
## 136     20   28
## 137     20    2
## 138     20    9
## 139     21   43
## 140     21    1
## 141     21   47
## 142     21    3
## 143     21   40
## 144     21   39
## 145     21    6
## 146     22   64
## 147     22   52
## 148     22   28
## 149     22   15
## 150     22   17
## 151     22   40
## 152     23    4
## 153     23   43
## 154     23   20
## 155     23   58
## 156     23   17
## 157     23   37
## 158     23   46
## 159     24   28
## 160     24   47
## 161     24   43
## 162     24   25
## 163     24   60
## 164     24   44
## 165     24   39
## 166     25    9
## 167     25   53
## 168     25    3
## 169     25   24
## 170     25   34
## 171     25   10
## 172     25   47
## 173     26   49
## 174     26   40
## 175     26   17
## 176     26    4
## 177     26    9
## 178     26   32
## 179     26   11
## 180     27   51
## 181     27   13
## 182     27   46
## 183     27   37
## 184     27   14
## 185     27    6
## 186     28   24
## 187     28    4
## 188     28   22
## 189     28   19
## 190     28   20
## 191     28    8
## 192     28   36
## 193     29   50
## 194     29    6
## 195     29   38
## 196     29   34
## 197     29   52
## 198     29   48
## 199     30   52
## 200     30   64
## 201     30   15
## 202     30   55
## 203     30   31
## 204     30   61
## 205     30   50
## 206     31   58
## 207     31   55
## 208     31   64
## 209     31   10
## 210     31   30
## 211     31   50
## 212     31   14
## 213     32   61
## 214     32    8
## 215     32   44
## 216     32   18
## 217     32   51
## 218     32   26
## 219     32   13
## 220     33   60
## 221     33   12
## 222     33   50
## 223     33   36
## 224     33   13
## 225     33   15
## 226     33   51
## 227     34    6
## 228     34   60
## 229     34   37
## 230     34   29
## 231     34   25
## 232     34   11
## 233     34   52
## 234     35   46
## 235     35   38
## 236     35   56
## 237     35    6
## 238     35   57
## 239     35   52
## 240     35   48
## 241     36   13
## 242     36   57
## 243     36   51
## 244     36   33
## 245     36   16
## 246     36   28
## 247     37    5
## 248     37   34
## 249     37   27
## 250     37   23
## 251     37   61
## 252     38   11
## 253     38   35
## 254     38   29
## 255     38   12
## 256     38   18
## 257     38   15
## 258     39    1
## 259     39   54
## 260     39   40
## 261     39   16
## 262     39   44
## 263     39   21
## 264     39   24
## 265     40   20
## 266     40   26
## 267     40   39
## 268     40   59
## 269     40   21
## 270     40   56
## 271     40   22
## 272     41   59
## 273     41   17
## 274     41   58
## 275     41   20
## 276     42   12
## 277     42   50
## 278     42   57
## 279     42   60
## 280     42   61
## 281     42   64
## 282     42   56
## 283     43   21
## 284     43   23
## 285     43   24
## 286     43   63
## 287     43   59
## 288     43   46
## 289     43   55
## 290     44   14
## 291     44   32
## 292     44   53
## 293     44   39
## 294     44   24
## 295     44   59
## 296     45    5
## 297     45   51
## 298     45   60
## 299     45   56
## 300     45   63
## 301     45   55
## 302     45   58
## 303     46   35
## 304     46    7
## 305     46   27
## 306     46   50
## 307     46   64
## 308     46   43
## 309     46   23
## 310     47   18
## 311     47   24
## 312     47   21
## 313     47   61
## 314     47    8
## 315     47   51
## 316     47   25
## 317     48   17
## 318     48   63
## 319     48   52
## 320     48   29
## 321     48   35
## 322     49   26
## 323     49   20
## 324     49   63
## 325     49   64
## 326     49   58
## 327     50   29
## 328     50   42
## 329     50   33
## 330     50   46
## 331     50   31
## 332     50   30
## 333     51   27
## 334     51   45
## 335     51   36
## 336     51   57
## 337     51   32
## 338     51   47
## 339     51   33
## 340     52   30
## 341     52   22
## 342     52   19
## 343     52   48
## 344     52   29
## 345     52   35
## 346     52   34
## 347     53   25
## 348     53   44
## 349     53   57
## 350     54   14
## 351     54   39
## 352     54   61
## 353     54   15
## 354     54   59
## 355     54   64
## 356     55   62
## 357     55   31
## 358     55   10
## 359     55   30
## 360     55   45
## 361     55   43
## 362     56   11
## 363     56   35
## 364     56   45
## 365     56   40
## 366     56   42
## 367     57    7
## 368     57   36
## 369     57   42
## 370     57   51
## 371     57   35
## 372     57   53
## 373     58   31
## 374     58    2
## 375     58   41
## 376     58   23
## 377     58   49
## 378     58   45
## 379     59   41
## 380     59    9
## 381     59   40
## 382     59   43
## 383     59   54
## 384     59   44
## 385     60   33
## 386     60   34
## 387     60   45
## 388     60   42
## 389     60   24
## 390     61   32
## 391     61    3
## 392     61   54
## 393     61   47
## 394     61   42
## 395     61   30
## 396     61   37
## 397     62   55
## 398     63    2
## 399     63   48
## 400     63   49
## 401     63   43
## 402     63   45
## 403     64   22
## 404     64   30
## 405     64   31
## 406     64   49
## 407     64   46
## 408     64   42
## 409     64   54

Map Pre Ratings for each Player’s Opponents

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
opps6 <- opps5 %>% left_join(plyrpreratcalcfmt, by = c("Opps" = "Player"))
opps6
##     Player Opps PlayerPreRating
## 1        1   39            1436
## 2        1   21            1563
## 3        1   18            1600
## 4        1   14            1610
## 5        1    7            1649
## 6        1   12            1663
## 7        1    4            1716
## 8        2   63            1175
## 9        2   58             917
## 10       2    4            1716
## 11       2   17            1629
## 12       2   16            1604
## 13       2   20            1595
## 14       2    7            1649
## 15       3    8            1641
## 16       3   61             955
## 17       3   25            1745
## 18       3   21            1563
## 19       3   11            1712
## 20       3   13            1666
## 21       3   12            1663
## 22       4   23            1363
## 23       4   28            1507
## 24       4    2            1553
## 25       4   26            1579
## 26       4    5            1655
## 27       4   19            1564
## 28       4    1            1794
## 29       5   45            1242
## 30       5   37             980
## 31       5   12            1663
## 32       5   13            1666
## 33       5    4            1716
## 34       5   14            1610
## 35       5   17            1629
## 36       6   34            1399
## 37       6   29            1602
## 38       6   11            1712
## 39       6   35            1438
## 40       6   10            1365
## 41       6   27            1552
## 42       6   21            1563
## 43       7   57            1092
## 44       7   46             377
## 45       7   13            1666
## 46       7   11            1712
## 47       7    1            1794
## 48       7    9            1411
## 49       7    2            1553
## 50       8    3            1384
## 51       8   32            1441
## 52       8   14            1610
## 53       8    9            1411
## 54       8   47            1362
## 55       8   28            1507
## 56       8   19            1564
## 57       9   25            1745
## 58       9   18            1600
## 59       9   59             853
## 60       9    8            1641
## 61       9   26            1579
## 62       9    7            1649
## 63       9   20            1595
## 64      10   16            1604
## 65      10   19            1564
## 66      10   55            1186
## 67      10   31            1494
## 68      10    6            1686
## 69      10   25            1745
## 70      10   18            1600
## 71      11   38            1423
## 72      11   56            1153
## 73      11    6            1686
## 74      11    7            1649
## 75      11    3            1384
## 76      11   34            1399
## 77      11   26            1579
## 78      12   42            1332
## 79      12   33            1449
## 80      12    5            1655
## 81      12   38            1423
## 82      12    1            1794
## 83      12    3            1384
## 84      13   36            1355
## 85      13   27            1552
## 86      13    7            1649
## 87      13    5            1655
## 88      13   33            1449
## 89      13    3            1384
## 90      13   32            1441
## 91      14   54            1270
## 92      14   44            1199
## 93      14    8            1641
## 94      14    1            1794
## 95      14   27            1552
## 96      14    5            1655
## 97      14   31            1494
## 98      15   19            1564
## 99      15   16            1604
## 100     15   30            1522
## 101     15   22            1555
## 102     15   54            1270
## 103     15   33            1449
## 104     15   38            1423
## 105     16   10            1365
## 106     16   15            1220
## 107     16   39            1436
## 108     16    2            1553
## 109     16   36            1355
## 110     17   48            1382
## 111     17   41            1403
## 112     17   26            1579
## 113     17    2            1553
## 114     17   23            1363
## 115     17   22            1555
## 116     17    5            1655
## 117     18   47            1362
## 118     18    9            1411
## 119     18    1            1794
## 120     18   32            1441
## 121     18   19            1564
## 122     18   38            1423
## 123     18   10            1365
## 124     19   15            1220
## 125     19   10            1365
## 126     19   52             935
## 127     19   28            1507
## 128     19   18            1600
## 129     19    4            1716
## 130     19    8            1641
## 131     20   40            1348
## 132     20   49            1291
## 133     20   23            1363
## 134     20   41            1403
## 135     20   28            1507
## 136     20    2            1553
## 137     20    9            1411
## 138     21   43            1283
## 139     21    1            1794
## 140     21   47            1362
## 141     21    3            1384
## 142     21   40            1348
## 143     21   39            1436
## 144     21    6            1686
## 145     22   64            1163
## 146     22   52             935
## 147     22   28            1507
## 148     22   15            1220
## 149     22   17            1629
## 150     22   40            1348
## 151     23    4            1716
## 152     23   43            1283
## 153     23   20            1595
## 154     23   58             917
## 155     23   17            1629
## 156     23   37             980
## 157     23   46             377
## 158     24   28            1507
## 159     24   47            1362
## 160     24   43            1283
## 161     24   25            1745
## 162     24   60             967
## 163     24   44            1199
## 164     24   39            1436
## 165     25    9            1411
## 166     25   53            1393
## 167     25    3            1384
## 168     25   24            1229
## 169     25   34            1399
## 170     25   10            1365
## 171     25   47            1362
## 172     26   49            1291
## 173     26   40            1348
## 174     26   17            1629
## 175     26    4            1716
## 176     26    9            1411
## 177     26   32            1441
## 178     26   11            1712
## 179     27   51            1011
## 180     27   13            1666
## 181     27   46             377
## 182     27   37             980
## 183     27   14            1610
## 184     27    6            1686
## 185     28   24            1229
## 186     28    4            1716
## 187     28   22            1555
## 188     28   19            1564
## 189     28   20            1595
## 190     28    8            1641
## 191     28   36            1355
## 192     29   50            1056
## 193     29    6            1686
## 194     29   38            1423
## 195     29   34            1399
## 196     29   52             935
## 197     29   48            1382
## 198     30   52             935
## 199     30   64            1163
## 200     30   15            1220
## 201     30   55            1186
## 202     30   31            1494
## 203     30   61             955
## 204     30   50            1056
## 205     31   58             917
## 206     31   55            1186
## 207     31   64            1163
## 208     31   10            1365
## 209     31   30            1522
## 210     31   50            1056
## 211     31   14            1610
## 212     32   61             955
## 213     32    8            1641
## 214     32   44            1199
## 215     32   18            1600
## 216     32   51            1011
## 217     32   26            1579
## 218     32   13            1666
## 219     33   60             967
## 220     33   12            1663
## 221     33   50            1056
## 222     33   36            1355
## 223     33   13            1666
## 224     33   15            1220
## 225     33   51            1011
## 226     34    6            1686
## 227     34   60             967
## 228     34   37             980
## 229     34   29            1602
## 230     34   25            1745
## 231     34   11            1712
## 232     34   52             935
## 233     35   46             377
## 234     35   38            1423
## 235     35   56            1153
## 236     35    6            1686
## 237     35   57            1092
## 238     35   52             935
## 239     35   48            1382
## 240     36   13            1666
## 241     36   57            1092
## 242     36   51            1011
## 243     36   33            1449
## 244     36   16            1604
## 245     36   28            1507
## 246     37    5            1655
## 247     37   34            1399
## 248     37   27            1552
## 249     37   23            1363
## 250     37   61             955
## 251     38   11            1712
## 252     38   35            1438
## 253     38   29            1602
## 254     38   12            1663
## 255     38   18            1600
## 256     38   15            1220
## 257     39    1            1794
## 258     39   54            1270
## 259     39   40            1348
## 260     39   16            1604
## 261     39   44            1199
## 262     39   21            1563
## 263     39   24            1229
## 264     40   20            1595
## 265     40   26            1579
## 266     40   39            1436
## 267     40   59             853
## 268     40   21            1563
## 269     40   56            1153
## 270     40   22            1555
## 271     41   59             853
## 272     41   17            1629
## 273     41   58             917
## 274     41   20            1595
## 275     42   12            1663
## 276     42   50            1056
## 277     42   57            1092
## 278     42   60             967
## 279     42   61             955
## 280     42   64            1163
## 281     42   56            1153
## 282     43   21            1563
## 283     43   23            1363
## 284     43   24            1229
## 285     43   63            1175
## 286     43   59             853
## 287     43   46             377
## 288     43   55            1186
## 289     44   14            1610
## 290     44   32            1441
## 291     44   53            1393
## 292     44   39            1436
## 293     44   24            1229
## 294     44   59             853
## 295     45    5            1655
## 296     45   51            1011
## 297     45   60             967
## 298     45   56            1153
## 299     45   63            1175
## 300     45   55            1186
## 301     45   58             917
## 302     46   35            1438
## 303     46    7            1649
## 304     46   27            1552
## 305     46   50            1056
## 306     46   64            1163
## 307     46   43            1283
## 308     46   23            1363
## 309     47   18            1600
## 310     47   24            1229
## 311     47   21            1563
## 312     47   61             955
## 313     47    8            1641
## 314     47   51            1011
## 315     47   25            1745
## 316     48   17            1629
## 317     48   63            1175
## 318     48   52             935
## 319     48   29            1602
## 320     48   35            1438
## 321     49   26            1579
## 322     49   20            1595
## 323     49   63            1175
## 324     49   64            1163
## 325     49   58             917
## 326     50   29            1602
## 327     50   42            1332
## 328     50   33            1449
## 329     50   46             377
## 330     50   31            1494
## 331     50   30            1522
## 332     51   27            1552
## 333     51   45            1242
## 334     51   36            1355
## 335     51   57            1092
## 336     51   32            1441
## 337     51   47            1362
## 338     51   33            1449
## 339     52   30            1522
## 340     52   22            1555
## 341     52   19            1564
## 342     52   48            1382
## 343     52   29            1602
## 344     52   35            1438
## 345     52   34            1399
## 346     53   25            1745
## 347     53   44            1199
## 348     53   57            1092
## 349     54   14            1610
## 350     54   39            1436
## 351     54   61             955
## 352     54   15            1220
## 353     54   59             853
## 354     54   64            1163
## 355     55   62            1530
## 356     55   31            1494
## 357     55   10            1365
## 358     55   30            1522
## 359     55   45            1242
## 360     55   43            1283
## 361     56   11            1712
## 362     56   35            1438
## 363     56   45            1242
## 364     56   40            1348
## 365     56   42            1332
## 366     57    7            1649
## 367     57   36            1355
## 368     57   42            1332
## 369     57   51            1011
## 370     57   35            1438
## 371     57   53            1393
## 372     58   31            1494
## 373     58    2            1553
## 374     58   41            1403
## 375     58   23            1363
## 376     58   49            1291
## 377     58   45            1242
## 378     59   41            1403
## 379     59    9            1411
## 380     59   40            1348
## 381     59   43            1283
## 382     59   54            1270
## 383     59   44            1199
## 384     60   33            1449
## 385     60   34            1399
## 386     60   45            1242
## 387     60   42            1332
## 388     60   24            1229
## 389     61   32            1441
## 390     61    3            1384
## 391     61   54            1270
## 392     61   47            1362
## 393     61   42            1332
## 394     61   30            1522
## 395     61   37             980
## 396     62   55            1186
## 397     63    2            1553
## 398     63   48            1382
## 399     63   49            1291
## 400     63   43            1283
## 401     63   45            1242
## 402     64   22            1555
## 403     64   30            1522
## 404     64   31            1494
## 405     64   49            1291
## 406     64   46             377
## 407     64   42            1332
## 408     64   54            1270

Calculate Avg. Opponent Pre Rating (and give format for final merge)

oppsavgprerating <- summarise(group_by(opps6,Player), mean(PlayerPreRating))
names(oppsavgprerating) <- c("Player", "OppsAvgPreRating")
oppsavgpreratingfmt <- oppsavgprerating[,-1]
oppsavgpreratingfmt
## # A tibble: 64 x 1
##    OppsAvgPreRating
##               <dbl>
##  1            1605.
##  2            1469.
##  3            1564.
##  4            1574.
##  5            1501.
##  6            1519.
##  7            1372.
##  8            1468.
##  9            1523.
## 10            1554.
## # ... with 54 more rows

Build the final dataframe including all the data points (columns) calculated: PlayerName, PlayerState, PlayerPoints, PlayerPreRating, OppsAvgPreRating

player_df <- cbind(playernamesfmt, playerstatesfmt2, playerpointsfmt, playerpreratingfmt2, oppsavgpreratingfmt)
str(player_df)
## 'data.frame':    64 obs. of  5 variables:
##  $ PlayerName      : chr  "GARY HUA   ," "DAKSHESH DARURI   ," "ADITYA BAJAJ   ," "PATRICK H SCHILLING  ," ...
##  $ PlayerState     : chr  "ON ," "MI ," "MI ," "MI ," ...
##  $ PlayerPoints    : chr  "6.0 ," "6.0 ," "6.0 ," "5.5 ," ...
##  $ PlayerPreRating : chr  " 1794 ," " 1553 ," " 1384 ," " 1716 ," ...
##  $ OppsAvgPreRating: num  1605 1469 1564 1574 1501 ...
head(player_df,1)
##     PlayerName PlayerState PlayerPoints PlayerPreRating OppsAvgPreRating
## 1 GARY HUA   ,        ON ,        6.0 ,          1794 ,         1605.286
player_df
##                      PlayerName PlayerState PlayerPoints PlayerPreRating
## 1                  GARY HUA   ,        ON ,        6.0 ,          1794 ,
## 2           DAKSHESH DARURI   ,        MI ,        6.0 ,          1553 ,
## 3              ADITYA BAJAJ   ,        MI ,        6.0 ,          1384 ,
## 4        PATRICK H SCHILLING  ,        MI ,        5.5 ,          1716 ,
## 5                HANSHI ZUO   ,        MI ,        5.5 ,          1655 ,
## 6               HANSEN SONG   ,        OH ,        5.0 ,          1686 ,
## 7          GARY DEE SWATHELL  ,        MI ,        5.0 ,          1649 ,
## 8          EZEKIEL HOUGHTON   ,        MI ,        5.0 ,       1641P17 ,
## 9               STEFANO LEE   ,        ON ,        5.0 ,          1411 ,
## 10                ANVIT RAO   ,        MI ,        5.0 ,          1365 ,
## 11   CAMERON WILLIAM MC LEMAN ,        MI ,        4.5 ,          1712 ,
## 12            KENNETH J TACK  ,        MI ,        4.5 ,          1663 ,
## 13         TORRANCE HENRY JR  ,        MI ,        4.5 ,          1666 ,
## 14             BRADLEY SHAW   ,        MI ,        4.5 ,          1610 ,
## 15    ZACHARY JAMES HOUGHTON  ,        MI ,        4.5 ,       1220P13 ,
## 16             MIKE NIKITIN   ,        MI ,        4.0 ,          1604 ,
## 17       RONALD GRZEGORCZYK   ,        MI ,        4.0 ,          1629 ,
## 18            DAVID SUNDEEN   ,        MI ,        4.0 ,          1600 ,
## 19             DIPANKAR ROY   ,        MI ,        4.0 ,          1564 ,
## 20              JASON ZHENG   ,        MI ,        4.0 ,          1595 ,
## 21             DINH DANG BUI  ,        ON ,        4.0 ,       1563P22 ,
## 22          EUGENE L MCCLURE  ,        MI ,        4.0 ,          1555 ,
## 23                 ALAN BUI   ,        ON ,        4.0 ,          1363 ,
## 24         MICHAEL R ALDRICH  ,        MI ,        4.0 ,          1229 ,
## 25         LOREN SCHWIEBERT   ,        MI ,        3.5 ,          1745 ,
## 26                  MAX ZHU   ,        ON ,        3.5 ,          1579 ,
## 27           GAURAV GIDWANI   ,        MI ,        3.5 ,          1552 ,
## 28 SOFIA ADINA STANESCU-BELLU ,        MI ,        3.5 ,          1507 ,
## 29         CHIEDOZIE OKORIE   ,        MI ,        3.5 ,        1602P6 ,
## 30        GEORGE AVERY JONES  ,        ON ,        3.5 ,          1522 ,
## 31             RISHI SHETTY   ,        MI ,        3.5 ,          1494 ,
## 32     JOSHUA PHILIP MATHEWS  ,        ON ,        3.5 ,          1441 ,
## 33                  JADE GE   ,        MI ,        3.5 ,          1449 ,
## 34    MICHAEL JEFFERY THOMAS  ,        MI ,        3.5 ,          1399 ,
## 35          JOSHUA DAVID LEE  ,        MI ,        3.5 ,          1438 ,
## 36            SIDDHARTH JHA   ,        MI ,        3.5 ,          1355 ,
## 37     AMIYATOSH PWNANANDAM   ,        MI ,        3.5 ,        980P12 ,
## 38                BRIAN LIU   ,        MI ,        3.0 ,          1423 ,
## 39             JOEL R HENDON  ,        MI ,        3.0 ,       1436P23 ,
## 40             FOREST ZHANG   ,        MI ,        3.0 ,          1348 ,
## 41       KYLE WILLIAM MURPHY  ,        MI ,        3.0 ,        1403P5 ,
## 42                 JARED GE   ,        MI ,        3.0 ,          1332 ,
## 43         ROBERT GLEN VASEY  ,        MI ,        3.0 ,          1283 ,
## 44        JUSTIN D SCHILLING  ,        MI ,        3.0 ,          1199 ,
## 45                DEREK YAN   ,        MI ,        3.0 ,          1242 ,
## 46  JACOB ALEXANDER LAVALLEY  ,        MI ,        3.0 ,         377P3 ,
## 47              ERIC WRIGHT   ,        MI ,        2.5 ,          1362 ,
## 48             DANIEL KHAIN   ,        MI ,        2.5 ,          1382 ,
## 49          MICHAEL J MARTIN  ,        MI ,        2.5 ,       1291P12 ,
## 50               SHIVAM JHA   ,        MI ,        2.5 ,          1056 ,
## 51           TEJAS AYYAGARI   ,        MI ,        2.5 ,          1011 ,
## 52                ETHAN GUO   ,        MI ,        2.5 ,           935 ,
## 53             JOSE C YBARRA  ,        MI ,        2.0 ,          1393 ,
## 54              LARRY HODGE   ,        MI ,        2.0 ,          1270 ,
## 55                ALEX KONG   ,        MI ,        2.0 ,          1186 ,
## 56             MARISA RICCI   ,        MI ,        2.0 ,          1153 ,
## 57               MICHAEL LU   ,        MI ,        2.0 ,          1092 ,
## 58             VIRAJ MOHILE   ,        MI ,        2.0 ,           917 ,
## 59          SEAN M MC CORMICK ,        MI ,        2.0 ,           853 ,
## 60               JULIA SHEN   ,        MI ,        1.5 ,           967 ,
## 61            JEZZEL FARKAS   ,        ON ,        1.5 ,        955P11 ,
## 62            ASHWIN BALAJI   ,        MI ,        1.0 ,          1530 ,
## 63      THOMAS JOSEPH HOSMER  ,        MI ,        1.0 ,          1175 ,
## 64                   BEN LI   ,        MI ,        1.0 ,          1163 ,
##    OppsAvgPreRating
## 1          1605.286
## 2          1469.286
## 3          1563.571
## 4          1573.571
## 5          1500.857
## 6          1518.714
## 7          1372.143
## 8          1468.429
## 9          1523.143
## 10         1554.143
## 11         1467.571
## 12         1506.167
## 13         1497.857
## 14         1515.000
## 15         1483.857
## 16         1385.800
## 17         1498.571
## 18         1480.000
## 19         1426.286
## 20         1410.857
## 21         1470.429
## 22         1300.333
## 23         1213.857
## 24         1357.000
## 25         1363.286
## 26         1506.857
## 27         1221.667
## 28         1522.143
## 29         1313.500
## 30         1144.143
## 31         1259.857
## 32         1378.714
## 33         1276.857
## 34         1375.286
## 35         1149.714
## 36         1388.167
## 37         1384.800
## 38         1539.167
## 39         1429.571
## 40         1390.571
## 41         1248.500
## 42         1149.857
## 43         1106.571
## 44         1327.000
## 45         1152.000
## 46         1357.714
## 47         1392.000
## 48         1355.800
## 49         1285.800
## 50         1296.000
## 51         1356.143
## 52         1494.571
## 53         1345.333
## 54         1206.167
## 55         1406.000
## 56         1414.400
## 57         1363.000
## 58         1391.000
## 59         1319.000
## 60         1330.200
## 61         1327.286
## 62         1186.000
## 63         1350.200
## 64         1263.000

Write the final result set to a CSV file

setwd("C:/DATA/HHP/Personal/Degrees/Ms. Data Science (CUNY)/R Working Dir")
write.csv(player_df, "ChessPlayerStats.csv", row.names = TRUE)