Project 1 Brief

In this project, we have a text file with chess tournament results where the information has some structure. The purpose of the project is to create a structured .csv file with below variables as columns.

  • Player’s Name
  • Player’s State
  • Total Number of Points
  • Player’s Pre Rating
  • Average Pre Chess Rating of Opponents

The first information would be : Gary Hua, ON, 6.0, 1794, 1605

Data Collection in txt format

## Installing package into 'C:/Users/Anil Akyildirim/Documents/R/win-library/3.6'
## (as 'lib' is unspecified)
## package 'stringr' successfully unpacked and MD5 sums checked
## 
## The downloaded binary packages are in
##  C:\Users\Anil Akyildirim\AppData\Local\Temp\Rtmpi8EUhK\downloaded_packages
##                                                                                          V1
## 1     1 | GARY HUA                        |6.0  |W  39|W  21|W  18|W  14|W   7|D  12|D   4|
## 2    ON | 15445895 / R: 1794   ->1817     |N:2  |W    |B    |W    |B    |W    |B    |W    |
## 3 -----------------------------------------------------------------------------------------
## 4     2 | DAKSHESH DARURI                 |6.0  |W  63|W  58|L   4|W  17|W  16|W  20|W   7|
## 5    MI | 14598900 / R: 1553   ->1663     |N:2  |B    |W    |B    |W    |B    |W    |B    |
## 6 -----------------------------------------------------------------------------------------

Find the Player ID

##  [1] "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9"  "10" "11" "12" "13" "14"
## [15] "15" "16" "17" "18" "19" "20" "21" "22" "23" "24" "25" "26" "27" "28"
## [29] "29" "30" "31" "32" "33" "34" "35" "36" "37" "38" "39" "40" "41" "42"
## [43] "43" "44" "45" "46" "47" "48" "49" "50" "51" "52" "53" "54" "55" "56"
## [57] "57" "58" "59" "60" "61" "62" "63" "64"

Find the 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 "             
## [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 "

Find the Player State

##  [1] "ON " "MI " "MI " "MI " "MI " "OH " "MI " "MI " "ON " "MI " "MI "
## [12] "MI " "MI " "MI " "MI " "MI " "MI " "MI " "MI " "MI " "ON " "MI "
## [23] "ON " "MI " "MI " "ON " "MI " "MI " "MI " "ON " "MI " "ON " "MI "
## [34] "MI " "MI " "MI " "MI " "MI " "MI " "MI " "MI " "MI " "MI " "MI "
## [45] "MI " "MI " "MI " "MI " "MI " "MI " "MI " "MI " "MI " "MI " "MI "
## [56] "MI " "MI " "MI " "MI " "MI " "ON " "MI " "MI " "MI "

Find Total Points

##  [1] "6.0" "6.0" "6.0" "5.5" "5.5" "5.0" "5.0" "5.0" "5.0" "5.0" "4.5"
## [12] "4.5" "4.5" "4.5" "4.5" "4.0" "4.0" "4.0" "4.0" "4.0" "4.0" "4.0"
## [23] "4.0" "4.0" "3.5" "3.5" "3.5" "3.5" "3.5" "3.5" "3.5" "3.5" "3.5"
## [34] "3.5" "3.5" "3.5" "3.5" "3.0" "3.0" "3.0" "3.0" "3.0" "3.0" "3.0"
## [45] "3.0" "3.0" "2.5" "2.5" "2.5" "2.5" "2.5" "2.5" "2.0" "2.0" "2.0"
## [56] "2.0" "2.0" "2.0" "2.0" "1.5" "1.5" "1.0" "1.0" "1.0"

Find Player’s Pre Rating

##  [1] "1794" "1553" "1384" "1716" "1655" "1686" "1649" "1641" "1411" "1365"
## [11] "1712" "1663" "1666" "1610" "1220" "1604" "1629" "1600" "1564" "1595"
## [21] "1563" "1555" "1363" "1229" "1745" "1579" "1552" "1507" "1602" "1522"
## [31] "1494" "1441" "1449" "1399" "1438" "1355" "980"  "1423" "1436" "1348"
## [41] "1403" "1332" "1283" "1199" "1242" "377"  "1362" "1382" "1291" "1056"
## [51] "1011" "935"  "1393" "1270" "1186" "1153" "1092" "917"  "853"  "967" 
## [61] "955"  "1530" "1175" "1163"

Create a dataframe

##   player_id         player_name player_state total_points
## 1         1            GARY HUA           ON          6.0
## 2         2     DAKSHESH DARURI           MI          6.0
## 3         3        ADITYA BAJAJ           MI          6.0
## 4         4 PATRICK H SCHILLING           MI          5.5
## 5         5          HANSHI ZUO           MI          5.5
## 6         6         HANSEN SONG           OH          5.0
##   players_pre_rating
## 1               1794
## 2               1553
## 3               1384
## 4               1716
## 5               1655
## 6               1686

Look at structure of the dataframe

## 'data.frame':    64 obs. of  5 variables:
##  $ player_id         : Factor w/ 64 levels "1","10","11",..: 1 12 23 34 45 56 62 63 64 2 ...
##  $ player_name       : Factor w/ 64 levels "ADITYA BAJAJ",..: 24 12 1 51 28 27 23 21 59 5 ...
##  $ player_state      : Factor w/ 3 levels "MI","OH","ON": 3 1 1 1 1 2 1 1 3 1 ...
##  $ total_points      : Factor w/ 11 levels "1.0","1.5","2.0",..: 11 11 11 10 10 9 9 9 9 9 ...
##  $ players_pre_rating: Factor w/ 64 levels "1011","1056",..: 57 37 22 55 50 53 49 48 26 20 ...

We need to convert to numerical variables in order to find the Average Pre Chess Rating of Opponents.

Convert to numerical variables

## 'data.frame':    64 obs. of  5 variables:
##  $ player_id         : num  1 12 23 34 45 56 62 63 64 2 ...
##  $ player_name       : Factor w/ 64 levels "ADITYA BAJAJ",..: 24 12 1 51 28 27 23 21 59 5 ...
##  $ player_state      : Factor w/ 3 levels "MI","OH","ON": 3 1 1 1 1 2 1 1 3 1 ...
##  $ total_points      : num  11 11 11 10 10 9 9 9 9 9 ...
##  $ players_pre_rating: num  57 37 22 55 50 53 49 48 26 20 ...

Find Opponent of Each Player

##    [1] NA NA NA 39 21 18 14  7 12  4 NA NA NA NA NA NA NA NA NA NA NA NA NA
##   [24] 63 58  4 17 16 20  7 NA NA NA NA NA NA NA NA NA NA NA NA NA  8 61 25
##   [47] 21 11 13 12 NA NA NA NA NA NA NA NA NA NA NA NA NA 23 28  2 26  5 19
##   [70]  1 NA NA NA NA NA NA NA NA NA NA NA NA NA 45 37 12 13  4 14 17 NA NA
##   [93] NA NA NA NA NA NA NA NA NA NA NA 34 29 11 35 10 27 21 NA NA NA NA NA
##  [116] NA NA NA NA NA NA NA NA 57 46 13 11  1  9  2 NA NA NA NA NA NA NA NA
##  [139] NA NA NA NA NA  3 32 14  9 47 28 19 NA NA NA NA NA NA NA NA NA NA NA
##  [162] NA NA 25 18 59  8 26  7 20 NA NA NA NA NA NA NA NA NA NA NA NA NA 16
##  [185] 19 55 31  6 25 18 NA NA NA NA NA NA NA NA NA NA NA NA NA 38 56  6  7
##  [208]  3 34 26 NA NA NA NA NA NA NA NA NA NA NA NA NA 42 33  5 38 NA  1  3
##  [231] NA NA NA NA NA NA NA NA NA NA NA NA NA 36 27  7  5 33  3 32 NA NA NA
##  [254] NA NA NA NA NA NA NA NA NA NA 54 44  8  1 27  5 31 NA NA NA NA NA NA
##  [277] NA NA NA NA NA NA NA 19 16 30 22 54 33 38 NA NA NA NA NA NA NA NA NA
##  [300] NA NA NA NA 10 15 NA 39  2 36 NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [323] NA 48 41 26  2 23 22  5 NA NA NA NA NA NA NA NA NA NA NA NA NA 47  9
##  [346]  1 32 19 38 10 NA NA NA NA NA NA NA NA NA NA NA NA NA 15 10 52 28 18
##  [369]  4  8 NA NA NA NA NA NA NA NA NA NA NA NA NA 40 49 23 41 28  2  9 NA
##  [392] NA NA NA NA NA NA NA NA NA NA NA NA 43  1 47  3 40 39  6 NA NA NA NA
##  [415] NA NA NA NA NA NA NA NA NA 64 52 28 15 NA 17 40 NA NA NA NA NA NA NA
##  [438] NA NA NA NA NA NA  4 43 20 58 17 37 46 NA NA NA NA NA NA NA NA NA NA
##  [461] NA NA NA 28 47 43 25 60 44 39 NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [484]  9 53  3 24 34 10 47 NA NA NA NA NA NA NA NA NA NA NA NA NA 49 40 17
##  [507]  4  9 32 11 NA NA NA NA NA NA NA NA NA NA NA NA NA 51 13 46 37 14  6
##  [530] NA NA NA NA NA NA NA NA NA NA NA NA NA NA 24  4 22 19 20  8 36 NA NA
##  [553] NA NA NA NA NA NA NA NA NA NA NA 50  6 38 34 52 48 NA NA NA NA NA NA
##  [576] NA NA NA NA NA NA NA NA 52 64 15 55 31 61 50 NA NA NA NA NA NA NA NA
##  [599] NA NA NA NA NA 58 55 64 10 30 50 14 NA NA NA NA NA NA NA NA NA NA NA
##  [622] NA NA 61  8 44 18 51 26 13 NA NA NA NA NA NA NA NA NA NA NA NA NA 60
##  [645] 12 50 36 13 15 51 NA NA NA NA NA NA NA NA NA NA NA NA NA  6 60 37 29
##  [668] 25 11 52 NA NA NA NA NA NA NA NA NA NA NA NA NA 46 38 56  6 57 52 48
##  [691] NA NA NA NA NA NA NA NA NA NA NA NA NA 13 57 51 33 NA 16 28 NA NA NA
##  [714] NA NA NA NA NA NA NA NA NA NA NA  5 34 27 NA 23 61 NA NA NA NA NA NA
##  [737] NA NA NA NA NA NA NA 11 35 29 12 NA 18 15 NA NA NA NA NA NA NA NA NA
##  [760] NA NA NA NA  1 54 40 16 44 21 24 NA NA NA NA NA NA NA NA NA NA NA NA
##  [783] NA 20 26 39 59 21 56 22 NA NA NA NA NA NA NA NA NA NA NA NA NA 59 17
##  [806] 58 20 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 12 50 57 60 61
##  [829] 64 56 NA NA NA NA NA NA NA NA NA NA NA NA NA 21 23 24 63 59 46 55 NA
##  [852] NA NA NA NA NA NA NA NA NA NA NA NA NA 14 32 53 39 24 59 NA NA NA NA
##  [875] NA NA NA NA NA NA NA NA NA  5 51 60 56 63 55 58 NA NA NA NA NA NA NA
##  [898] NA NA NA NA NA NA 35  7 27 50 64 43 23 NA NA NA NA NA NA NA NA NA NA
##  [921] NA NA NA 18 24 21 61  8 51 25 NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [944] 17 63 NA 52 NA 29 35 NA NA NA NA NA NA NA NA NA NA NA NA NA 26 20 63
##  [967] 64 58 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 29 42 33 46 NA 31
##  [990] 30 NA NA NA NA NA NA NA NA NA NA NA NA NA 27 45 36 57 32 47 33 NA NA
## [1013] NA NA NA NA NA NA NA NA NA NA NA 30 22 19 48 29 35 34 NA NA NA NA NA
## [1036] NA NA NA NA NA NA NA NA NA 25 NA 44 NA 57 NA NA NA NA NA NA NA NA NA
## [1059] NA NA NA NA NA 14 39 61 NA 15 59 64 NA NA NA NA NA NA NA NA NA NA NA
## [1082] NA NA 62 31 10 30 NA 45 43 NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [1105] 11 35 45 NA 40 42 NA NA NA NA NA NA NA NA NA NA NA NA NA  7 36 42 51
## [1128] 35 53 NA NA NA NA NA NA NA NA NA NA NA NA NA NA 31  2 41 23 49 NA 45
## [1151] NA NA NA NA NA NA NA NA NA NA NA NA NA 41 NA  9 40 43 54 44 NA NA NA
## [1174] NA NA NA NA NA NA NA NA NA NA 33 34 45 42 24 NA NA NA NA NA NA NA NA
## [1197] NA NA NA NA NA NA NA 32  3 54 47 42 30 37 NA NA NA NA NA NA NA NA NA
## [1220] NA NA NA NA 55 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [1243] NA  2 48 49 43 45 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 22 30
## [1266] 31 49 46 42 54 NA NA NA NA NA NA NA NA NA NA

Map each player’s opponent to Pre Rating

##       [,1] [,2] [,3] [,4] [,5] [,6] [,7]
##  [1,]   39   21   18   14    7   12    4
##  [2,]   63   58    4   17   16   20    7
##  [3,]    8   61   25   21   11   13   12
##  [4,]   23   28    2   26    5   19    1
##  [5,]   45   37   12   13    4   14   17
##  [6,]   34   29   11   35   10   27   21
##  [7,]   57   46   13   11    1    9    2
##  [8,]    3   32   14    9   47   28   19
##  [9,]   25   18   59    8   26    7   20
## [10,]   16   19   55   31    6   25   18
## [11,]   38   56    6    7    3   34   26
## [12,]   42   33    5   38   NA    1    3
## [13,]   36   27    7    5   33    3   32
## [14,]   54   44    8    1   27    5   31
## [15,]   19   16   30   22   54   33   38
## [16,]   10   15   NA   39    2   36   NA
## [17,]   48   41   26    2   23   22    5
## [18,]   47    9    1   32   19   38   10
## [19,]   15   10   52   28   18    4    8
## [20,]   40   49   23   41   28    2    9
## [21,]   43    1   47    3   40   39    6
## [22,]   64   52   28   15   NA   17   40
## [23,]    4   43   20   58   17   37   46
## [24,]   28   47   43   25   60   44   39
## [25,]    9   53    3   24   34   10   47
## [26,]   49   40   17    4    9   32   11
## [27,]   51   13   46   37   14    6   NA
## [28,]   24    4   22   19   20    8   36
## [29,]   50    6   38   34   52   48   NA
## [30,]   52   64   15   55   31   61   50
## [31,]   58   55   64   10   30   50   14
## [32,]   61    8   44   18   51   26   13
## [33,]   60   12   50   36   13   15   51
## [34,]    6   60   37   29   25   11   52
## [35,]   46   38   56    6   57   52   48
## [36,]   13   57   51   33   NA   16   28
## [37,]   NA    5   34   27   NA   23   61
## [38,]   11   35   29   12   NA   18   15
## [39,]    1   54   40   16   44   21   24
## [40,]   20   26   39   59   21   56   22
## [41,]   59   17   58   20   NA   NA   NA
## [42,]   12   50   57   60   61   64   56
## [43,]   21   23   24   63   59   46   55
## [44,]   NA   14   32   53   39   24   59
## [45,]    5   51   60   56   63   55   58
## [46,]   35    7   27   50   64   43   23
## [47,]   18   24   21   61    8   51   25
## [48,]   17   63   NA   52   NA   29   35
## [49,]   26   20   63   64   58   NA   NA
## [50,]   29   42   33   46   NA   31   30
## [51,]   27   45   36   57   32   47   33
## [52,]   30   22   19   48   29   35   34
## [53,]   NA   25   NA   44   NA   57   NA
## [54,]   14   39   61   NA   15   59   64
## [55,]   62   31   10   30   NA   45   43
## [56,]   NA   11   35   45   NA   40   42
## [57,]    7   36   42   51   35   53   NA
## [58,]   31    2   41   23   49   NA   45
## [59,]   41   NA    9   40   43   54   44
## [60,]   33   34   45   42   24   NA   NA
## [61,]   32    3   54   47   42   30   37
## [62,]   55   NA   NA   NA   NA   NA   NA
## [63,]    2   48   49   43   45   NA   NA
## [64,]   22   30   31   49   46   42   54

Add the Average Pre Chess Rating of Opponent to the dataframe

##   player_id         player_name player_state total_points
## 1         1            GARY HUA           ON           11
## 2        12     DAKSHESH DARURI           MI           11
## 3        23        ADITYA BAJAJ           MI           11
## 4        34 PATRICK H SCHILLING           MI           10
## 5        45          HANSHI ZUO           MI           10
## 6        56         HANSEN SONG           OH            9
##   players_pre_rating avg_opponent_player
## 1                 57            1605.286
## 2                 37            1469.286
## 3                 22            1563.571
## 4                 55            1573.571
## 5                 50            1500.857
## 6                 53            1518.714

Export the dataframe to .csv file

2019-09-19