Project Goal:
The project goal is to be able write R code to scrape and cleanse the data from the semi-structured text file, calculate average pre-ratings of all the opponenets for a given chess player and then export the tabular data in csv format including below columns -
- Player’s Name
- Player’s State
- Total Number of Points
- Player’s Pre-Rating
- Average Pre Chess Rating of Opponents
For the first player in the list, the information would be: Gary Hua, ON, 6.0, 1794, 1605
Data Processing Steps :
Below are the steps to be followed for extracting, cleansing and processing data to generate the final output -
- Import data into R:
rawData <- read.delim("https://raw.githubusercontent.com/soumya2g/R-CUNY-MSDS/master/DATA-607/Chess%20Tournament/Source%20Files/TournamentInfo.txt",header = FALSE, stringsAsFactors = FALSE)
head(rawData)
V1
|
—————————————————————————————–
|
Pair | Player Name |Total|Round|Round|Round|Round|Round|Round|Round|
|
Num | USCF ID / Rtg (Pre->Post) | Pts | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|
—————————————————————————————–
|
1 | GARY HUA |6.0 |W 39|W 21|W 18|W 14|W 7|D 12|D 4|
|
ON | 15445895 / R: 1794 ->1817 |N:2 |W |B |W |B |W |B |W |
|
- Clean the row delimiters present as a series of dash (‘-’) characters and delete the resultant empty lines:
## Clean up the row delimiters
rawData <- data.frame(str_replace_all(rawData$V1,"-",""))
head(rawData)
str_replace_all.rawData.V1……….
|
|
Pair | Player Name |Total|Round|Round|Round|Round|Round|Round|Round|
|
Num | USCF ID / Rtg (Pre>Post) | Pts | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|
|
1 | GARY HUA |6.0 |W 39|W 21|W 18|W 14|W 7|D 12|D 4|
|
ON | 15445895 / R: 1794 >1817 |N:2 |W |B |W |B |W |B |W |
|
## Delete empty lines
rawData1 <- data.frame(rawData[!apply(rawData == "",1,all),])
head(rawData1)
rawData..apply.rawData……..1..all….
|
Pair | Player Name |Total|Round|Round|Round|Round|Round|Round|Round|
|
Num | USCF ID / Rtg (Pre>Post) | Pts | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|
1 | GARY HUA |6.0 |W 39|W 21|W 18|W 14|W 7|D 12|D 4|
|
ON | 15445895 / R: 1794 >1817 |N:2 |W |B |W |B |W |B |W |
|
2 | DAKSHESH DARURI |6.0 |W 63|W 58|L 4|W 17|W 16|W 20|W 7|
|
MI | 14598900 / R: 1553 >1663 |N:2 |B |W |B |W |B |W |B |
|
The data set for each player in the file can be divided between Odd and Even row numbers. So I have separated the processing of the data between Odd and Even records -
- Processing of Odd rows:
Odd rownumbers are extracted in a separate data frame and data is split up by the pipe(‘|’) column demiliter.
### Odd Rows
oddRows <- rawData1 %>% dplyr::filter(row_number() %% 2 == 1)
oddRows[] <- lapply(oddRows,as.character)
### Split the data based on pipe delimiters in a list format
oddList <- lapply(oddRows, function(X){
strsplit(X, "\\|")
})
### Remove addiotnal blank column at the end
v <- oddList[[1]][[1]]
v <- v[-11]
oddList[[1]][[1]] <- v
### Convert the list into a matrix and then a data frame
oddDf <- data.frame(matrix(unlist(oddList), nrow = 65, byrow = T))
head(oddDf) %>% kable() %>% kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive")) %>% scroll_box(width="100%",height="300px")
X1
|
X2
|
X3
|
X4
|
X5
|
X6
|
X7
|
X8
|
X9
|
X10
|
Pair
|
Player Name
|
Total
|
Round
|
Round
|
Round
|
Round
|
Round
|
Round
|
Round
|
1
|
GARY HUA
|
6.0
|
W 39
|
W 21
|
W 18
|
W 14
|
W 7
|
D 12
|
D 4
|
2
|
DAKSHESH DARURI
|
6.0
|
W 63
|
W 58
|
L 4
|
W 17
|
W 16
|
W 20
|
W 7
|
3
|
ADITYA BAJAJ
|
6.0
|
L 8
|
W 61
|
W 25
|
W 21
|
W 11
|
W 13
|
W 12
|
4
|
PATRICK H SCHILLING
|
5.5
|
W 23
|
D 28
|
W 2
|
W 26
|
D 5
|
W 19
|
D 1
|
5
|
HANSHI ZUO
|
5.5
|
W 45
|
W 37
|
D 12
|
D 13
|
D 4
|
W 14
|
W 17
|
- Processing of Even rows:
### Even Rows
evenRows <- rawData1 %>% dplyr::filter(row_number() %% 2 == 0)
evenRows[] <- lapply(evenRows,as.character)
### Split the data based on pipe delimiters in a list format
evenList <- lapply(evenRows, function(X){
strsplit(X, "\\|")
})
### Remove addiotnal blank column at the end
v <- evenList[[1]][[1]]
v <- v[-11]
evenList[[1]][[1]] <- v
### Convert the list into a matrix and then a data frame
evenDf <- data.frame(matrix(unlist(evenList), nrow = 65, byrow = T))
head(evenDf) %>% kable() %>% kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive")) %>% scroll_box(width="100%",height="300px")
X1
|
X2
|
X3
|
X4
|
X5
|
X6
|
X7
|
X8
|
X9
|
X10
|
Num
|
USCF ID / Rtg (Pre>Post)
|
Pts
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
ON
|
15445895 / R: 1794 >1817
|
N:2
|
W
|
B
|
W
|
B
|
W
|
B
|
W
|
MI
|
14598900 / R: 1553 >1663
|
N:2
|
B
|
W
|
B
|
W
|
B
|
W
|
B
|
MI
|
14959604 / R: 1384 >1640
|
N:2
|
W
|
B
|
W
|
B
|
W
|
B
|
W
|
MI
|
12616049 / R: 1716 >1744
|
N:2
|
W
|
B
|
W
|
B
|
W
|
B
|
B
|
MI
|
14601533 / R: 1655 >1690
|
N:2
|
B
|
W
|
B
|
W
|
B
|
W
|
B
|
- Combine Odd and Even record data frames into a combined flat data frame:
Here after combining the odd and even rows, Players’s USCF_ID, Pre and Post Ratings are extracted using regular expressions and un-necessary columns are removed from the data frame.
### Combine Odd and Even records into one data frame
tournamentTable <- data.frame(cbind(oddDf,evenDf), stringsAsFactors = FALSE)
### Convert the factor into Character for applying Regex exression
tournamentTable$X2.1 <- as.character(tournamentTable$X2.1)
### Extract USCF_ID, Player's Pre and Post Ratings
tournamentTable$USCF_ID <- str_extract_all(str_trim(tournamentTable$X2.1),"^(\\d+)")
tournamentTable$Player_Pre_Rating <- as.integer(str_trim(str_extract(str_extract(tournamentTable$X2.1,"[^\\d]\\d{3,4}[^\\d]"),"\\d+")))
tournamentTable$Player_Post_Rating <- as.integer(str_extract(str_extract(tournamentTable$X2.1,"(>\\s*\\d{3,4}[^\\d])"),"\\d+"))
### Strip the 1st row with column names and strip off any unnecessary columns
tournamentTable <- tournamentTable %>% dplyr::filter(row_number() != 1)
tournamentTableFinal <- tournamentTable[-c(12:20)]
### Add header record to the data frame
names(tournamentTableFinal) <- c("Player_No","Player_Name","Total_Points","Round1","Round2","Round3","Round4","Round5","Round6","Round7",
"Player_State","USCF_ID","Player_Pre_Rating","Player_Post_Rating")
tournamentTableFinal %>% kable() %>% kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive")) %>% scroll_box(width="100%",height="300px")
Player_No
|
Player_Name
|
Total_Points
|
Round1
|
Round2
|
Round3
|
Round4
|
Round5
|
Round6
|
Round7
|
Player_State
|
USCF_ID
|
Player_Pre_Rating
|
Player_Post_Rating
|
1
|
GARY HUA
|
6.0
|
W 39
|
W 21
|
W 18
|
W 14
|
W 7
|
D 12
|
D 4
|
ON
|
15445895
|
1794
|
1817
|
2
|
DAKSHESH DARURI
|
6.0
|
W 63
|
W 58
|
L 4
|
W 17
|
W 16
|
W 20
|
W 7
|
MI
|
14598900
|
1553
|
1663
|
3
|
ADITYA BAJAJ
|
6.0
|
L 8
|
W 61
|
W 25
|
W 21
|
W 11
|
W 13
|
W 12
|
MI
|
14959604
|
1384
|
1640
|
4
|
PATRICK H SCHILLING
|
5.5
|
W 23
|
D 28
|
W 2
|
W 26
|
D 5
|
W 19
|
D 1
|
MI
|
12616049
|
1716
|
1744
|
5
|
HANSHI ZUO
|
5.5
|
W 45
|
W 37
|
D 12
|
D 13
|
D 4
|
W 14
|
W 17
|
MI
|
14601533
|
1655
|
1690
|
6
|
HANSEN SONG
|
5.0
|
W 34
|
D 29
|
L 11
|
W 35
|
D 10
|
W 27
|
W 21
|
OH
|
15055204
|
1686
|
1687
|
7
|
GARY DEE SWATHELL
|
5.0
|
W 57
|
W 46
|
W 13
|
W 11
|
L 1
|
W 9
|
L 2
|
MI
|
11146376
|
1649
|
1673
|
8
|
EZEKIEL HOUGHTON
|
5.0
|
W 3
|
W 32
|
L 14
|
L 9
|
W 47
|
W 28
|
W 19
|
MI
|
15142253
|
1641
|
1657
|
9
|
STEFANO LEE
|
5.0
|
W 25
|
L 18
|
W 59
|
W 8
|
W 26
|
L 7
|
W 20
|
ON
|
14954524
|
1411
|
1564
|
10
|
ANVIT RAO
|
5.0
|
D 16
|
L 19
|
W 55
|
W 31
|
D 6
|
W 25
|
W 18
|
MI
|
14150362
|
1365
|
1544
|
11
|
CAMERON WILLIAM MC LEMAN
|
4.5
|
D 38
|
W 56
|
W 6
|
L 7
|
L 3
|
W 34
|
W 26
|
MI
|
12581589
|
1712
|
1696
|
12
|
KENNETH J TACK
|
4.5
|
W 42
|
W 33
|
D 5
|
W 38
|
H
|
D 1
|
L 3
|
MI
|
12681257
|
1663
|
1670
|
13
|
TORRANCE HENRY JR
|
4.5
|
W 36
|
W 27
|
L 7
|
D 5
|
W 33
|
L 3
|
W 32
|
MI
|
15082995
|
1666
|
1662
|
14
|
BRADLEY SHAW
|
4.5
|
W 54
|
W 44
|
W 8
|
L 1
|
D 27
|
L 5
|
W 31
|
MI
|
10131499
|
1610
|
1618
|
15
|
ZACHARY JAMES HOUGHTON
|
4.5
|
D 19
|
L 16
|
W 30
|
L 22
|
W 54
|
W 33
|
W 38
|
MI
|
15619130
|
1220
|
1416
|
16
|
MIKE NIKITIN
|
4.0
|
D 10
|
W 15
|
H
|
W 39
|
L 2
|
W 36
|
U
|
MI
|
10295068
|
1604
|
1613
|
17
|
RONALD GRZEGORCZYK
|
4.0
|
W 48
|
W 41
|
L 26
|
L 2
|
W 23
|
W 22
|
L 5
|
MI
|
10297702
|
1629
|
1610
|
18
|
DAVID SUNDEEN
|
4.0
|
W 47
|
W 9
|
L 1
|
W 32
|
L 19
|
W 38
|
L 10
|
MI
|
11342094
|
1600
|
1600
|
19
|
DIPANKAR ROY
|
4.0
|
D 15
|
W 10
|
W 52
|
D 28
|
W 18
|
L 4
|
L 8
|
MI
|
14862333
|
1564
|
1570
|
20
|
JASON ZHENG
|
4.0
|
L 40
|
W 49
|
W 23
|
W 41
|
W 28
|
L 2
|
L 9
|
MI
|
14529060
|
1595
|
1569
|
21
|
DINH DANG BUI
|
4.0
|
W 43
|
L 1
|
W 47
|
L 3
|
W 40
|
W 39
|
L 6
|
ON
|
15495066
|
1563
|
1562
|
22
|
EUGENE L MCCLURE
|
4.0
|
W 64
|
D 52
|
L 28
|
W 15
|
H
|
L 17
|
W 40
|
MI
|
12405534
|
1555
|
1529
|
23
|
ALAN BUI
|
4.0
|
L 4
|
W 43
|
L 20
|
W 58
|
L 17
|
W 37
|
W 46
|
ON
|
15030142
|
1363
|
1371
|
24
|
MICHAEL R ALDRICH
|
4.0
|
L 28
|
L 47
|
W 43
|
L 25
|
W 60
|
W 44
|
W 39
|
MI
|
13469010
|
1229
|
1300
|
25
|
LOREN SCHWIEBERT
|
3.5
|
L 9
|
W 53
|
L 3
|
W 24
|
D 34
|
L 10
|
W 47
|
MI
|
12486656
|
1745
|
1681
|
26
|
MAX ZHU
|
3.5
|
W 49
|
W 40
|
W 17
|
L 4
|
L 9
|
D 32
|
L 11
|
ON
|
15131520
|
1579
|
1564
|
27
|
GAURAV GIDWANI
|
3.5
|
W 51
|
L 13
|
W 46
|
W 37
|
D 14
|
L 6
|
U
|
MI
|
14476567
|
1552
|
1539
|
28
|
SOFIA ADINA STANESCUBELLU
|
3.5
|
W 24
|
D 4
|
W 22
|
D 19
|
L 20
|
L 8
|
D 36
|
MI
|
14882954
|
1507
|
1513
|
29
|
CHIEDOZIE OKORIE
|
3.5
|
W 50
|
D 6
|
L 38
|
L 34
|
W 52
|
W 48
|
U
|
MI
|
15323285
|
1602
|
1508
|
30
|
GEORGE AVERY JONES
|
3.5
|
L 52
|
D 64
|
L 15
|
W 55
|
L 31
|
W 61
|
W 50
|
ON
|
12577178
|
1522
|
1444
|
31
|
RISHI SHETTY
|
3.5
|
L 58
|
D 55
|
W 64
|
L 10
|
W 30
|
W 50
|
L 14
|
MI
|
15131618
|
1494
|
1444
|
32
|
JOSHUA PHILIP MATHEWS
|
3.5
|
W 61
|
L 8
|
W 44
|
L 18
|
W 51
|
D 26
|
L 13
|
ON
|
14073750
|
1441
|
1433
|
33
|
JADE GE
|
3.5
|
W 60
|
L 12
|
W 50
|
D 36
|
L 13
|
L 15
|
W 51
|
MI
|
14691842
|
1449
|
1421
|
34
|
MICHAEL JEFFERY THOMAS
|
3.5
|
L 6
|
W 60
|
L 37
|
W 29
|
D 25
|
L 11
|
W 52
|
MI
|
15051807
|
1399
|
1400
|
35
|
JOSHUA DAVID LEE
|
3.5
|
L 46
|
L 38
|
W 56
|
L 6
|
W 57
|
D 52
|
W 48
|
MI
|
14601397
|
1438
|
1392
|
36
|
SIDDHARTH JHA
|
3.5
|
L 13
|
W 57
|
W 51
|
D 33
|
H
|
L 16
|
D 28
|
MI
|
14773163
|
1355
|
1367
|
37
|
AMIYATOSH PWNANANDAM
|
3.5
|
B
|
L 5
|
W 34
|
L 27
|
H
|
L 23
|
W 61
|
MI
|
15489571
|
980
|
1077
|
38
|
BRIAN LIU
|
3.0
|
D 11
|
W 35
|
W 29
|
L 12
|
H
|
L 18
|
L 15
|
MI
|
15108523
|
1423
|
1439
|
39
|
JOEL R HENDON
|
3.0
|
L 1
|
W 54
|
W 40
|
L 16
|
W 44
|
L 21
|
L 24
|
MI
|
12923035
|
1436
|
1413
|
40
|
FOREST ZHANG
|
3.0
|
W 20
|
L 26
|
L 39
|
W 59
|
L 21
|
W 56
|
L 22
|
MI
|
14892710
|
1348
|
1346
|
41
|
KYLE WILLIAM MURPHY
|
3.0
|
W 59
|
L 17
|
W 58
|
L 20
|
X
|
U
|
U
|
MI
|
15761443
|
1403
|
1341
|
42
|
JARED GE
|
3.0
|
L 12
|
L 50
|
L 57
|
D 60
|
D 61
|
W 64
|
W 56
|
MI
|
14462326
|
1332
|
1256
|
43
|
ROBERT GLEN VASEY
|
3.0
|
L 21
|
L 23
|
L 24
|
W 63
|
W 59
|
L 46
|
W 55
|
MI
|
14101068
|
1283
|
1244
|
44
|
JUSTIN D SCHILLING
|
3.0
|
B
|
L 14
|
L 32
|
W 53
|
L 39
|
L 24
|
W 59
|
MI
|
15323504
|
1199
|
1199
|
45
|
DEREK YAN
|
3.0
|
L 5
|
L 51
|
D 60
|
L 56
|
W 63
|
D 55
|
W 58
|
MI
|
15372807
|
1242
|
1191
|
46
|
JACOB ALEXANDER LAVALLEY
|
3.0
|
W 35
|
L 7
|
L 27
|
L 50
|
W 64
|
W 43
|
L 23
|
MI
|
15490981
|
377
|
1076
|
47
|
ERIC WRIGHT
|
2.5
|
L 18
|
W 24
|
L 21
|
W 61
|
L 8
|
D 51
|
L 25
|
MI
|
12533115
|
1362
|
1341
|
48
|
DANIEL KHAIN
|
2.5
|
L 17
|
W 63
|
H
|
D 52
|
H
|
L 29
|
L 35
|
MI
|
14369165
|
1382
|
1335
|
49
|
MICHAEL J MARTIN
|
2.5
|
L 26
|
L 20
|
D 63
|
D 64
|
W 58
|
H
|
U
|
MI
|
12531685
|
1291
|
1259
|
50
|
SHIVAM JHA
|
2.5
|
L 29
|
W 42
|
L 33
|
W 46
|
H
|
L 31
|
L 30
|
MI
|
14773178
|
1056
|
1111
|
51
|
TEJAS AYYAGARI
|
2.5
|
L 27
|
W 45
|
L 36
|
W 57
|
L 32
|
D 47
|
L 33
|
MI
|
15205474
|
1011
|
1097
|
52
|
ETHAN GUO
|
2.5
|
W 30
|
D 22
|
L 19
|
D 48
|
L 29
|
D 35
|
L 34
|
MI
|
14918803
|
935
|
1092
|
53
|
JOSE C YBARRA
|
2.0
|
H
|
L 25
|
H
|
L 44
|
U
|
W 57
|
U
|
MI
|
12578849
|
1393
|
1359
|
54
|
LARRY HODGE
|
2.0
|
L 14
|
L 39
|
L 61
|
B
|
L 15
|
L 59
|
W 64
|
MI
|
12836773
|
1270
|
1200
|
55
|
ALEX KONG
|
2.0
|
L 62
|
D 31
|
L 10
|
L 30
|
B
|
D 45
|
L 43
|
MI
|
15412571
|
1186
|
1163
|
56
|
MARISA RICCI
|
2.0
|
H
|
L 11
|
L 35
|
W 45
|
H
|
L 40
|
L 42
|
MI
|
14679887
|
1153
|
1140
|
57
|
MICHAEL LU
|
2.0
|
L 7
|
L 36
|
W 42
|
L 51
|
L 35
|
L 53
|
B
|
MI
|
15113330
|
1092
|
1079
|
58
|
VIRAJ MOHILE
|
2.0
|
W 31
|
L 2
|
L 41
|
L 23
|
L 49
|
B
|
L 45
|
MI
|
14700365
|
917
|
941
|
59
|
SEAN M MC CORMICK
|
2.0
|
L 41
|
B
|
L 9
|
L 40
|
L 43
|
W 54
|
L 44
|
MI
|
12841036
|
853
|
878
|
60
|
JULIA SHEN
|
1.5
|
L 33
|
L 34
|
D 45
|
D 42
|
L 24
|
H
|
U
|
MI
|
14579262
|
967
|
984
|
61
|
JEZZEL FARKAS
|
1.5
|
L 32
|
L 3
|
W 54
|
L 47
|
D 42
|
L 30
|
L 37
|
ON
|
15771592
|
955
|
979
|
62
|
ASHWIN BALAJI
|
1.0
|
W 55
|
U
|
U
|
U
|
U
|
U
|
U
|
MI
|
15219542
|
1530
|
1535
|
63
|
THOMAS JOSEPH HOSMER
|
1.0
|
L 2
|
L 48
|
D 49
|
L 43
|
L 45
|
H
|
U
|
MI
|
15057092
|
1175
|
1125
|
64
|
BEN LI
|
1.0
|
L 22
|
D 30
|
L 31
|
D 49
|
L 46
|
L 42
|
L 54
|
MI
|
15006561
|
1163
|
1112
|
- Create a normalized data frame containing records for each round of the tournament for each of the players including their opponents rating details
### Keeping necessary columns for the Project
playerSummaryDF <- select(tournamentTableFinal, Player_No:Total_Points, Player_State:Player_Post_Rating)
playerSummaryDF %>% kable() %>% kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive")) %>% scroll_box(width="100%",height="300px")
Player_No
|
Player_Name
|
Total_Points
|
Player_State
|
USCF_ID
|
Player_Pre_Rating
|
Player_Post_Rating
|
1
|
GARY HUA
|
6.0
|
ON
|
15445895
|
1794
|
1817
|
2
|
DAKSHESH DARURI
|
6.0
|
MI
|
14598900
|
1553
|
1663
|
3
|
ADITYA BAJAJ
|
6.0
|
MI
|
14959604
|
1384
|
1640
|
4
|
PATRICK H SCHILLING
|
5.5
|
MI
|
12616049
|
1716
|
1744
|
5
|
HANSHI ZUO
|
5.5
|
MI
|
14601533
|
1655
|
1690
|
6
|
HANSEN SONG
|
5.0
|
OH
|
15055204
|
1686
|
1687
|
7
|
GARY DEE SWATHELL
|
5.0
|
MI
|
11146376
|
1649
|
1673
|
8
|
EZEKIEL HOUGHTON
|
5.0
|
MI
|
15142253
|
1641
|
1657
|
9
|
STEFANO LEE
|
5.0
|
ON
|
14954524
|
1411
|
1564
|
10
|
ANVIT RAO
|
5.0
|
MI
|
14150362
|
1365
|
1544
|
11
|
CAMERON WILLIAM MC LEMAN
|
4.5
|
MI
|
12581589
|
1712
|
1696
|
12
|
KENNETH J TACK
|
4.5
|
MI
|
12681257
|
1663
|
1670
|
13
|
TORRANCE HENRY JR
|
4.5
|
MI
|
15082995
|
1666
|
1662
|
14
|
BRADLEY SHAW
|
4.5
|
MI
|
10131499
|
1610
|
1618
|
15
|
ZACHARY JAMES HOUGHTON
|
4.5
|
MI
|
15619130
|
1220
|
1416
|
16
|
MIKE NIKITIN
|
4.0
|
MI
|
10295068
|
1604
|
1613
|
17
|
RONALD GRZEGORCZYK
|
4.0
|
MI
|
10297702
|
1629
|
1610
|
18
|
DAVID SUNDEEN
|
4.0
|
MI
|
11342094
|
1600
|
1600
|
19
|
DIPANKAR ROY
|
4.0
|
MI
|
14862333
|
1564
|
1570
|
20
|
JASON ZHENG
|
4.0
|
MI
|
14529060
|
1595
|
1569
|
21
|
DINH DANG BUI
|
4.0
|
ON
|
15495066
|
1563
|
1562
|
22
|
EUGENE L MCCLURE
|
4.0
|
MI
|
12405534
|
1555
|
1529
|
23
|
ALAN BUI
|
4.0
|
ON
|
15030142
|
1363
|
1371
|
24
|
MICHAEL R ALDRICH
|
4.0
|
MI
|
13469010
|
1229
|
1300
|
25
|
LOREN SCHWIEBERT
|
3.5
|
MI
|
12486656
|
1745
|
1681
|
26
|
MAX ZHU
|
3.5
|
ON
|
15131520
|
1579
|
1564
|
27
|
GAURAV GIDWANI
|
3.5
|
MI
|
14476567
|
1552
|
1539
|
28
|
SOFIA ADINA STANESCUBELLU
|
3.5
|
MI
|
14882954
|
1507
|
1513
|
29
|
CHIEDOZIE OKORIE
|
3.5
|
MI
|
15323285
|
1602
|
1508
|
30
|
GEORGE AVERY JONES
|
3.5
|
ON
|
12577178
|
1522
|
1444
|
31
|
RISHI SHETTY
|
3.5
|
MI
|
15131618
|
1494
|
1444
|
32
|
JOSHUA PHILIP MATHEWS
|
3.5
|
ON
|
14073750
|
1441
|
1433
|
33
|
JADE GE
|
3.5
|
MI
|
14691842
|
1449
|
1421
|
34
|
MICHAEL JEFFERY THOMAS
|
3.5
|
MI
|
15051807
|
1399
|
1400
|
35
|
JOSHUA DAVID LEE
|
3.5
|
MI
|
14601397
|
1438
|
1392
|
36
|
SIDDHARTH JHA
|
3.5
|
MI
|
14773163
|
1355
|
1367
|
37
|
AMIYATOSH PWNANANDAM
|
3.5
|
MI
|
15489571
|
980
|
1077
|
38
|
BRIAN LIU
|
3.0
|
MI
|
15108523
|
1423
|
1439
|
39
|
JOEL R HENDON
|
3.0
|
MI
|
12923035
|
1436
|
1413
|
40
|
FOREST ZHANG
|
3.0
|
MI
|
14892710
|
1348
|
1346
|
41
|
KYLE WILLIAM MURPHY
|
3.0
|
MI
|
15761443
|
1403
|
1341
|
42
|
JARED GE
|
3.0
|
MI
|
14462326
|
1332
|
1256
|
43
|
ROBERT GLEN VASEY
|
3.0
|
MI
|
14101068
|
1283
|
1244
|
44
|
JUSTIN D SCHILLING
|
3.0
|
MI
|
15323504
|
1199
|
1199
|
45
|
DEREK YAN
|
3.0
|
MI
|
15372807
|
1242
|
1191
|
46
|
JACOB ALEXANDER LAVALLEY
|
3.0
|
MI
|
15490981
|
377
|
1076
|
47
|
ERIC WRIGHT
|
2.5
|
MI
|
12533115
|
1362
|
1341
|
48
|
DANIEL KHAIN
|
2.5
|
MI
|
14369165
|
1382
|
1335
|
49
|
MICHAEL J MARTIN
|
2.5
|
MI
|
12531685
|
1291
|
1259
|
50
|
SHIVAM JHA
|
2.5
|
MI
|
14773178
|
1056
|
1111
|
51
|
TEJAS AYYAGARI
|
2.5
|
MI
|
15205474
|
1011
|
1097
|
52
|
ETHAN GUO
|
2.5
|
MI
|
14918803
|
935
|
1092
|
53
|
JOSE C YBARRA
|
2.0
|
MI
|
12578849
|
1393
|
1359
|
54
|
LARRY HODGE
|
2.0
|
MI
|
12836773
|
1270
|
1200
|
55
|
ALEX KONG
|
2.0
|
MI
|
15412571
|
1186
|
1163
|
56
|
MARISA RICCI
|
2.0
|
MI
|
14679887
|
1153
|
1140
|
57
|
MICHAEL LU
|
2.0
|
MI
|
15113330
|
1092
|
1079
|
58
|
VIRAJ MOHILE
|
2.0
|
MI
|
14700365
|
917
|
941
|
59
|
SEAN M MC CORMICK
|
2.0
|
MI
|
12841036
|
853
|
878
|
60
|
JULIA SHEN
|
1.5
|
MI
|
14579262
|
967
|
984
|
61
|
JEZZEL FARKAS
|
1.5
|
ON
|
15771592
|
955
|
979
|
62
|
ASHWIN BALAJI
|
1.0
|
MI
|
15219542
|
1530
|
1535
|
63
|
THOMAS JOSEPH HOSMER
|
1.0
|
MI
|
15057092
|
1175
|
1125
|
64
|
BEN LI
|
1.0
|
MI
|
15006561
|
1163
|
1112
|
#### Create the Normalized data frame including details of each round and opponents ratings details based on a inner join with the base data set
roundDetailsDF <-
tournamentTableFinal %>% select(Player_No, Round1:Round7) %>%
melt(id.var=c("Player_No"), value.name="Outcome_Opp") %>%
mutate( Round = as.numeric(str_replace(variable, "Round", "")),
Result = str_extract(Outcome_Opp, "^\\w+"),
Opponent_Player_No = as.numeric(str_extract(Outcome_Opp, "\\d+$"))) %>%
select(-c(variable, Outcome_Opp)) %>%
inner_join(select(playerSummaryDF, Player_No, Player_Pre_Rating), c("Opponent_Player_No" = "Player_No")) %>%
select(Player_No, Round, Result, Opponent_Player_No, Player_Pre_Rating) %>%
arrange(Player_No, Round)
### Rename Palyer_Pre_Rating to Opponent_Pre_Rating
names(roundDetailsDF)[names(roundDetailsDF) == "Player_Pre_Rating"] <- "Opponent_Pre_Rating"
roundDetailsDF %>% kable() %>% kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive")) %>% scroll_box(width="100%",height="300px")
Player_No
|
Round
|
Result
|
Opponent_Player_No
|
Opponent_Pre_Rating
|
1
|
1
|
W
|
39
|
1436
|
1
|
2
|
W
|
21
|
1563
|
1
|
3
|
W
|
18
|
1600
|
1
|
4
|
W
|
14
|
1610
|
1
|
5
|
W
|
7
|
1649
|
1
|
6
|
D
|
12
|
1663
|
1
|
7
|
D
|
4
|
1716
|
2
|
1
|
W
|
63
|
1175
|
2
|
2
|
W
|
58
|
917
|
2
|
3
|
L
|
4
|
1716
|
2
|
4
|
W
|
17
|
1629
|
2
|
5
|
W
|
16
|
1604
|
2
|
6
|
W
|
20
|
1595
|
2
|
7
|
W
|
7
|
1649
|
3
|
1
|
L
|
8
|
1641
|
3
|
2
|
W
|
61
|
955
|
3
|
3
|
W
|
25
|
1745
|
3
|
4
|
W
|
21
|
1563
|
3
|
5
|
W
|
11
|
1712
|
3
|
6
|
W
|
13
|
1666
|
3
|
7
|
W
|
12
|
1663
|
4
|
1
|
W
|
23
|
1363
|
4
|
2
|
D
|
28
|
1507
|
4
|
3
|
W
|
2
|
1553
|
4
|
4
|
W
|
26
|
1579
|
4
|
5
|
D
|
5
|
1655
|
4
|
6
|
W
|
19
|
1564
|
4
|
7
|
D
|
1
|
1794
|
5
|
1
|
W
|
45
|
1242
|
5
|
2
|
W
|
37
|
980
|
5
|
3
|
D
|
12
|
1663
|
5
|
4
|
D
|
13
|
1666
|
5
|
5
|
D
|
4
|
1716
|
5
|
6
|
W
|
14
|
1610
|
5
|
7
|
W
|
17
|
1629
|
6
|
1
|
W
|
34
|
1399
|
6
|
2
|
D
|
29
|
1602
|
6
|
3
|
L
|
11
|
1712
|
6
|
4
|
W
|
35
|
1438
|
6
|
5
|
D
|
10
|
1365
|
6
|
6
|
W
|
27
|
1552
|
6
|
7
|
W
|
21
|
1563
|
7
|
1
|
W
|
57
|
1092
|
7
|
2
|
W
|
46
|
377
|
7
|
3
|
W
|
13
|
1666
|
7
|
4
|
W
|
11
|
1712
|
7
|
5
|
L
|
1
|
1794
|
7
|
6
|
W
|
9
|
1411
|
7
|
7
|
L
|
2
|
1553
|
8
|
1
|
W
|
3
|
1384
|
8
|
2
|
W
|
32
|
1441
|
8
|
3
|
L
|
14
|
1610
|
8
|
4
|
L
|
9
|
1411
|
8
|
5
|
W
|
47
|
1362
|
8
|
6
|
W
|
28
|
1507
|
8
|
7
|
W
|
19
|
1564
|
9
|
1
|
W
|
25
|
1745
|
9
|
2
|
L
|
18
|
1600
|
9
|
3
|
W
|
59
|
853
|
9
|
4
|
W
|
8
|
1641
|
9
|
5
|
W
|
26
|
1579
|
9
|
6
|
L
|
7
|
1649
|
9
|
7
|
W
|
20
|
1595
|
10
|
1
|
D
|
16
|
1604
|
10
|
2
|
L
|
19
|
1564
|
10
|
3
|
W
|
55
|
1186
|
10
|
4
|
W
|
31
|
1494
|
10
|
5
|
D
|
6
|
1686
|
10
|
6
|
W
|
25
|
1745
|
10
|
7
|
W
|
18
|
1600
|
11
|
1
|
D
|
38
|
1423
|
11
|
2
|
W
|
56
|
1153
|
11
|
3
|
W
|
6
|
1686
|
11
|
4
|
L
|
7
|
1649
|
11
|
5
|
L
|
3
|
1384
|
11
|
6
|
W
|
34
|
1399
|
11
|
7
|
W
|
26
|
1579
|
12
|
1
|
W
|
42
|
1332
|
12
|
2
|
W
|
33
|
1449
|
12
|
3
|
D
|
5
|
1655
|
12
|
4
|
W
|
38
|
1423
|
12
|
6
|
D
|
1
|
1794
|
12
|
7
|
L
|
3
|
1384
|
13
|
1
|
W
|
36
|
1355
|
13
|
2
|
W
|
27
|
1552
|
13
|
3
|
L
|
7
|
1649
|
13
|
4
|
D
|
5
|
1655
|
13
|
5
|
W
|
33
|
1449
|
13
|
6
|
L
|
3
|
1384
|
13
|
7
|
W
|
32
|
1441
|
14
|
1
|
W
|
54
|
1270
|
14
|
2
|
W
|
44
|
1199
|
14
|
3
|
W
|
8
|
1641
|
14
|
4
|
L
|
1
|
1794
|
14
|
5
|
D
|
27
|
1552
|
14
|
6
|
L
|
5
|
1655
|
14
|
7
|
W
|
31
|
1494
|
15
|
1
|
D
|
19
|
1564
|
15
|
2
|
L
|
16
|
1604
|
15
|
3
|
W
|
30
|
1522
|
15
|
4
|
L
|
22
|
1555
|
15
|
5
|
W
|
54
|
1270
|
15
|
6
|
W
|
33
|
1449
|
15
|
7
|
W
|
38
|
1423
|
16
|
1
|
D
|
10
|
1365
|
16
|
2
|
W
|
15
|
1220
|
16
|
4
|
W
|
39
|
1436
|
16
|
5
|
L
|
2
|
1553
|
16
|
6
|
W
|
36
|
1355
|
17
|
1
|
W
|
48
|
1382
|
17
|
2
|
W
|
41
|
1403
|
17
|
3
|
L
|
26
|
1579
|
17
|
4
|
L
|
2
|
1553
|
17
|
5
|
W
|
23
|
1363
|
17
|
6
|
W
|
22
|
1555
|
17
|
7
|
L
|
5
|
1655
|
18
|
1
|
W
|
47
|
1362
|
18
|
2
|
W
|
9
|
1411
|
18
|
3
|
L
|
1
|
1794
|
18
|
4
|
W
|
32
|
1441
|
18
|
5
|
L
|
19
|
1564
|
18
|
6
|
W
|
38
|
1423
|
18
|
7
|
L
|
10
|
1365
|
19
|
1
|
D
|
15
|
1220
|
19
|
2
|
W
|
10
|
1365
|
19
|
3
|
W
|
52
|
935
|
19
|
4
|
D
|
28
|
1507
|
19
|
5
|
W
|
18
|
1600
|
19
|
6
|
L
|
4
|
1716
|
19
|
7
|
L
|
8
|
1641
|
20
|
1
|
L
|
40
|
1348
|
20
|
2
|
W
|
49
|
1291
|
20
|
3
|
W
|
23
|
1363
|
20
|
4
|
W
|
41
|
1403
|
20
|
5
|
W
|
28
|
1507
|
20
|
6
|
L
|
2
|
1553
|
20
|
7
|
L
|
9
|
1411
|
21
|
1
|
W
|
43
|
1283
|
21
|
2
|
L
|
1
|
1794
|
21
|
3
|
W
|
47
|
1362
|
21
|
4
|
L
|
3
|
1384
|
21
|
5
|
W
|
40
|
1348
|
21
|
6
|
W
|
39
|
1436
|
21
|
7
|
L
|
6
|
1686
|
22
|
1
|
W
|
64
|
1163
|
22
|
2
|
D
|
52
|
935
|
22
|
3
|
L
|
28
|
1507
|
22
|
4
|
W
|
15
|
1220
|
22
|
6
|
L
|
17
|
1629
|
22
|
7
|
W
|
40
|
1348
|
23
|
1
|
L
|
4
|
1716
|
23
|
2
|
W
|
43
|
1283
|
23
|
3
|
L
|
20
|
1595
|
23
|
4
|
W
|
58
|
917
|
23
|
5
|
L
|
17
|
1629
|
23
|
6
|
W
|
37
|
980
|
23
|
7
|
W
|
46
|
377
|
24
|
1
|
L
|
28
|
1507
|
24
|
2
|
L
|
47
|
1362
|
24
|
3
|
W
|
43
|
1283
|
24
|
4
|
L
|
25
|
1745
|
24
|
5
|
W
|
60
|
967
|
24
|
6
|
W
|
44
|
1199
|
24
|
7
|
W
|
39
|
1436
|
25
|
1
|
L
|
9
|
1411
|
25
|
2
|
W
|
53
|
1393
|
25
|
3
|
L
|
3
|
1384
|
25
|
4
|
W
|
24
|
1229
|
25
|
5
|
D
|
34
|
1399
|
25
|
6
|
L
|
10
|
1365
|
25
|
7
|
W
|
47
|
1362
|
26
|
1
|
W
|
49
|
1291
|
26
|
2
|
W
|
40
|
1348
|
26
|
3
|
W
|
17
|
1629
|
26
|
4
|
L
|
4
|
1716
|
26
|
5
|
L
|
9
|
1411
|
26
|
6
|
D
|
32
|
1441
|
26
|
7
|
L
|
11
|
1712
|
27
|
1
|
W
|
51
|
1011
|
27
|
2
|
L
|
13
|
1666
|
27
|
3
|
W
|
46
|
377
|
27
|
4
|
W
|
37
|
980
|
27
|
5
|
D
|
14
|
1610
|
27
|
6
|
L
|
6
|
1686
|
28
|
1
|
W
|
24
|
1229
|
28
|
2
|
D
|
4
|
1716
|
28
|
3
|
W
|
22
|
1555
|
28
|
4
|
D
|
19
|
1564
|
28
|
5
|
L
|
20
|
1595
|
28
|
6
|
L
|
8
|
1641
|
28
|
7
|
D
|
36
|
1355
|
29
|
1
|
W
|
50
|
1056
|
29
|
2
|
D
|
6
|
1686
|
29
|
3
|
L
|
38
|
1423
|
29
|
4
|
L
|
34
|
1399
|
29
|
5
|
W
|
52
|
935
|
29
|
6
|
W
|
48
|
1382
|
30
|
1
|
L
|
52
|
935
|
30
|
2
|
D
|
64
|
1163
|
30
|
3
|
L
|
15
|
1220
|
30
|
4
|
W
|
55
|
1186
|
30
|
5
|
L
|
31
|
1494
|
30
|
6
|
W
|
61
|
955
|
30
|
7
|
W
|
50
|
1056
|
31
|
1
|
L
|
58
|
917
|
31
|
2
|
D
|
55
|
1186
|
31
|
3
|
W
|
64
|
1163
|
31
|
4
|
L
|
10
|
1365
|
31
|
5
|
W
|
30
|
1522
|
31
|
6
|
W
|
50
|
1056
|
31
|
7
|
L
|
14
|
1610
|
32
|
1
|
W
|
61
|
955
|
32
|
2
|
L
|
8
|
1641
|
32
|
3
|
W
|
44
|
1199
|
32
|
4
|
L
|
18
|
1600
|
32
|
5
|
W
|
51
|
1011
|
32
|
6
|
D
|
26
|
1579
|
32
|
7
|
L
|
13
|
1666
|
33
|
1
|
W
|
60
|
967
|
33
|
2
|
L
|
12
|
1663
|
33
|
3
|
W
|
50
|
1056
|
33
|
4
|
D
|
36
|
1355
|
33
|
5
|
L
|
13
|
1666
|
33
|
6
|
L
|
15
|
1220
|
33
|
7
|
W
|
51
|
1011
|
34
|
1
|
L
|
6
|
1686
|
34
|
2
|
W
|
60
|
967
|
34
|
3
|
L
|
37
|
980
|
34
|
4
|
W
|
29
|
1602
|
34
|
5
|
D
|
25
|
1745
|
34
|
6
|
L
|
11
|
1712
|
34
|
7
|
W
|
52
|
935
|
35
|
1
|
L
|
46
|
377
|
35
|
2
|
L
|
38
|
1423
|
35
|
3
|
W
|
56
|
1153
|
35
|
4
|
L
|
6
|
1686
|
35
|
5
|
W
|
57
|
1092
|
35
|
6
|
D
|
52
|
935
|
35
|
7
|
W
|
48
|
1382
|
36
|
1
|
L
|
13
|
1666
|
36
|
2
|
W
|
57
|
1092
|
36
|
3
|
W
|
51
|
1011
|
36
|
4
|
D
|
33
|
1449
|
36
|
6
|
L
|
16
|
1604
|
36
|
7
|
D
|
28
|
1507
|
37
|
2
|
L
|
5
|
1655
|
37
|
3
|
W
|
34
|
1399
|
37
|
4
|
L
|
27
|
1552
|
37
|
6
|
L
|
23
|
1363
|
37
|
7
|
W
|
61
|
955
|
38
|
1
|
D
|
11
|
1712
|
38
|
2
|
W
|
35
|
1438
|
38
|
3
|
W
|
29
|
1602
|
38
|
4
|
L
|
12
|
1663
|
38
|
6
|
L
|
18
|
1600
|
38
|
7
|
L
|
15
|
1220
|
39
|
1
|
L
|
1
|
1794
|
39
|
2
|
W
|
54
|
1270
|
39
|
3
|
W
|
40
|
1348
|
39
|
4
|
L
|
16
|
1604
|
39
|
5
|
W
|
44
|
1199
|
39
|
6
|
L
|
21
|
1563
|
39
|
7
|
L
|
24
|
1229
|
40
|
1
|
W
|
20
|
1595
|
40
|
2
|
L
|
26
|
1579
|
40
|
3
|
L
|
39
|
1436
|
40
|
4
|
W
|
59
|
853
|
40
|
5
|
L
|
21
|
1563
|
40
|
6
|
W
|
56
|
1153
|
40
|
7
|
L
|
22
|
1555
|
41
|
1
|
W
|
59
|
853
|
41
|
2
|
L
|
17
|
1629
|
41
|
3
|
W
|
58
|
917
|
41
|
4
|
L
|
20
|
1595
|
42
|
1
|
L
|
12
|
1663
|
42
|
2
|
L
|
50
|
1056
|
42
|
3
|
L
|
57
|
1092
|
42
|
4
|
D
|
60
|
967
|
42
|
5
|
D
|
61
|
955
|
42
|
6
|
W
|
64
|
1163
|
42
|
7
|
W
|
56
|
1153
|
43
|
1
|
L
|
21
|
1563
|
43
|
2
|
L
|
23
|
1363
|
43
|
3
|
L
|
24
|
1229
|
43
|
4
|
W
|
63
|
1175
|
43
|
5
|
W
|
59
|
853
|
43
|
6
|
L
|
46
|
377
|
43
|
7
|
W
|
55
|
1186
|
44
|
2
|
L
|
14
|
1610
|
44
|
3
|
L
|
32
|
1441
|
44
|
4
|
W
|
53
|
1393
|
44
|
5
|
L
|
39
|
1436
|
44
|
6
|
L
|
24
|
1229
|
44
|
7
|
W
|
59
|
853
|
45
|
1
|
L
|
5
|
1655
|
45
|
2
|
L
|
51
|
1011
|
45
|
3
|
D
|
60
|
967
|
45
|
4
|
L
|
56
|
1153
|
45
|
5
|
W
|
63
|
1175
|
45
|
6
|
D
|
55
|
1186
|
45
|
7
|
W
|
58
|
917
|
46
|
1
|
W
|
35
|
1438
|
46
|
2
|
L
|
7
|
1649
|
46
|
3
|
L
|
27
|
1552
|
46
|
4
|
L
|
50
|
1056
|
46
|
5
|
W
|
64
|
1163
|
46
|
6
|
W
|
43
|
1283
|
46
|
7
|
L
|
23
|
1363
|
47
|
1
|
L
|
18
|
1600
|
47
|
2
|
W
|
24
|
1229
|
47
|
3
|
L
|
21
|
1563
|
47
|
4
|
W
|
61
|
955
|
47
|
5
|
L
|
8
|
1641
|
47
|
6
|
D
|
51
|
1011
|
47
|
7
|
L
|
25
|
1745
|
48
|
1
|
L
|
17
|
1629
|
48
|
2
|
W
|
63
|
1175
|
48
|
4
|
D
|
52
|
935
|
48
|
6
|
L
|
29
|
1602
|
48
|
7
|
L
|
35
|
1438
|
49
|
1
|
L
|
26
|
1579
|
49
|
2
|
L
|
20
|
1595
|
49
|
3
|
D
|
63
|
1175
|
49
|
4
|
D
|
64
|
1163
|
49
|
5
|
W
|
58
|
917
|
50
|
1
|
L
|
29
|
1602
|
50
|
2
|
W
|
42
|
1332
|
50
|
3
|
L
|
33
|
1449
|
50
|
4
|
W
|
46
|
377
|
50
|
6
|
L
|
31
|
1494
|
50
|
7
|
L
|
30
|
1522
|
51
|
1
|
L
|
27
|
1552
|
51
|
2
|
W
|
45
|
1242
|
51
|
3
|
L
|
36
|
1355
|
51
|
4
|
W
|
57
|
1092
|
51
|
5
|
L
|
32
|
1441
|
51
|
6
|
D
|
47
|
1362
|
51
|
7
|
L
|
33
|
1449
|
52
|
1
|
W
|
30
|
1522
|
52
|
2
|
D
|
22
|
1555
|
52
|
3
|
L
|
19
|
1564
|
52
|
4
|
D
|
48
|
1382
|
52
|
5
|
L
|
29
|
1602
|
52
|
6
|
D
|
35
|
1438
|
52
|
7
|
L
|
34
|
1399
|
53
|
2
|
L
|
25
|
1745
|
53
|
4
|
L
|
44
|
1199
|
53
|
6
|
W
|
57
|
1092
|
54
|
1
|
L
|
14
|
1610
|
54
|
2
|
L
|
39
|
1436
|
54
|
3
|
L
|
61
|
955
|
54
|
5
|
L
|
15
|
1220
|
54
|
6
|
L
|
59
|
853
|
54
|
7
|
W
|
64
|
1163
|
55
|
1
|
L
|
62
|
1530
|
55
|
2
|
D
|
31
|
1494
|
55
|
3
|
L
|
10
|
1365
|
55
|
4
|
L
|
30
|
1522
|
55
|
6
|
D
|
45
|
1242
|
55
|
7
|
L
|
43
|
1283
|
56
|
2
|
L
|
11
|
1712
|
56
|
3
|
L
|
35
|
1438
|
56
|
4
|
W
|
45
|
1242
|
56
|
6
|
L
|
40
|
1348
|
56
|
7
|
L
|
42
|
1332
|
57
|
1
|
L
|
7
|
1649
|
57
|
2
|
L
|
36
|
1355
|
57
|
3
|
W
|
42
|
1332
|
57
|
4
|
L
|
51
|
1011
|
57
|
5
|
L
|
35
|
1438
|
57
|
6
|
L
|
53
|
1393
|
58
|
1
|
W
|
31
|
1494
|
58
|
2
|
L
|
2
|
1553
|
58
|
3
|
L
|
41
|
1403
|
58
|
4
|
L
|
23
|
1363
|
58
|
5
|
L
|
49
|
1291
|
58
|
7
|
L
|
45
|
1242
|
59
|
1
|
L
|
41
|
1403
|
59
|
3
|
L
|
9
|
1411
|
59
|
4
|
L
|
40
|
1348
|
59
|
5
|
L
|
43
|
1283
|
59
|
6
|
W
|
54
|
1270
|
59
|
7
|
L
|
44
|
1199
|
60
|
1
|
L
|
33
|
1449
|
60
|
2
|
L
|
34
|
1399
|
60
|
3
|
D
|
45
|
1242
|
60
|
4
|
D
|
42
|
1332
|
60
|
5
|
L
|
24
|
1229
|
61
|
1
|
L
|
32
|
1441
|
61
|
2
|
L
|
3
|
1384
|
61
|
3
|
W
|
54
|
1270
|
61
|
4
|
L
|
47
|
1362
|
61
|
5
|
D
|
42
|
1332
|
61
|
6
|
L
|
30
|
1522
|
61
|
7
|
L
|
37
|
980
|
62
|
1
|
W
|
55
|
1186
|
63
|
1
|
L
|
2
|
1553
|
63
|
2
|
L
|
48
|
1382
|
63
|
3
|
D
|
49
|
1291
|
63
|
4
|
L
|
43
|
1283
|
63
|
5
|
L
|
45
|
1242
|
64
|
1
|
L
|
22
|
1555
|
64
|
2
|
D
|
30
|
1522
|
64
|
3
|
L
|
31
|
1494
|
64
|
4
|
D
|
49
|
1291
|
64
|
5
|
L
|
46
|
377
|
64
|
6
|
L
|
42
|
1332
|
64
|
7
|
L
|
54
|
1270
|
- Calculate the Average Pre-rating of the opponents for each of the chess players:
### Calculate Mean/Average Pre-Rating of Opponenets for each player
playerSummaryDF <-
roundDetailsDF %>%
group_by(Player_No) %>% summarise(Opponents_Avg_Pre_Rating = round(mean(Opponent_Pre_Rating))) %>%
inner_join(playerSummaryDF, by="Player_No") %>%
select(Player_Name, Player_State, Total_Points, Player_Pre_Rating, Opponents_Avg_Pre_Rating)
playerSummaryDF %>% kable() %>% kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive")) %>% scroll_box(width="100%",height="300px")
Player_Name
|
Player_State
|
Total_Points
|
Player_Pre_Rating
|
Opponents_Avg_Pre_Rating
|
GARY HUA
|
ON
|
6.0
|
1794
|
1605
|
DAKSHESH DARURI
|
MI
|
6.0
|
1553
|
1469
|
ADITYA BAJAJ
|
MI
|
6.0
|
1384
|
1564
|
PATRICK H SCHILLING
|
MI
|
5.5
|
1716
|
1574
|
HANSHI ZUO
|
MI
|
5.5
|
1655
|
1501
|
HANSEN SONG
|
OH
|
5.0
|
1686
|
1519
|
GARY DEE SWATHELL
|
MI
|
5.0
|
1649
|
1372
|
EZEKIEL HOUGHTON
|
MI
|
5.0
|
1641
|
1468
|
STEFANO LEE
|
ON
|
5.0
|
1411
|
1523
|
ANVIT RAO
|
MI
|
5.0
|
1365
|
1554
|
CAMERON WILLIAM MC LEMAN
|
MI
|
4.5
|
1712
|
1468
|
KENNETH J TACK
|
MI
|
4.5
|
1663
|
1506
|
TORRANCE HENRY JR
|
MI
|
4.5
|
1666
|
1498
|
BRADLEY SHAW
|
MI
|
4.5
|
1610
|
1515
|
ZACHARY JAMES HOUGHTON
|
MI
|
4.5
|
1220
|
1484
|
MIKE NIKITIN
|
MI
|
4.0
|
1604
|
1386
|
RONALD GRZEGORCZYK
|
MI
|
4.0
|
1629
|
1499
|
DAVID SUNDEEN
|
MI
|
4.0
|
1600
|
1480
|
DIPANKAR ROY
|
MI
|
4.0
|
1564
|
1426
|
JASON ZHENG
|
MI
|
4.0
|
1595
|
1411
|
DINH DANG BUI
|
ON
|
4.0
|
1563
|
1470
|
EUGENE L MCCLURE
|
MI
|
4.0
|
1555
|
1300
|
ALAN BUI
|
ON
|
4.0
|
1363
|
1214
|
MICHAEL R ALDRICH
|
MI
|
4.0
|
1229
|
1357
|
LOREN SCHWIEBERT
|
MI
|
3.5
|
1745
|
1363
|
MAX ZHU
|
ON
|
3.5
|
1579
|
1507
|
GAURAV GIDWANI
|
MI
|
3.5
|
1552
|
1222
|
SOFIA ADINA STANESCUBELLU
|
MI
|
3.5
|
1507
|
1522
|
CHIEDOZIE OKORIE
|
MI
|
3.5
|
1602
|
1314
|
GEORGE AVERY JONES
|
ON
|
3.5
|
1522
|
1144
|
RISHI SHETTY
|
MI
|
3.5
|
1494
|
1260
|
JOSHUA PHILIP MATHEWS
|
ON
|
3.5
|
1441
|
1379
|
JADE GE
|
MI
|
3.5
|
1449
|
1277
|
MICHAEL JEFFERY THOMAS
|
MI
|
3.5
|
1399
|
1375
|
JOSHUA DAVID LEE
|
MI
|
3.5
|
1438
|
1150
|
SIDDHARTH JHA
|
MI
|
3.5
|
1355
|
1388
|
AMIYATOSH PWNANANDAM
|
MI
|
3.5
|
980
|
1385
|
BRIAN LIU
|
MI
|
3.0
|
1423
|
1539
|
JOEL R HENDON
|
MI
|
3.0
|
1436
|
1430
|
FOREST ZHANG
|
MI
|
3.0
|
1348
|
1391
|
KYLE WILLIAM MURPHY
|
MI
|
3.0
|
1403
|
1248
|
JARED GE
|
MI
|
3.0
|
1332
|
1150
|
ROBERT GLEN VASEY
|
MI
|
3.0
|
1283
|
1107
|
JUSTIN D SCHILLING
|
MI
|
3.0
|
1199
|
1327
|
DEREK YAN
|
MI
|
3.0
|
1242
|
1152
|
JACOB ALEXANDER LAVALLEY
|
MI
|
3.0
|
377
|
1358
|
ERIC WRIGHT
|
MI
|
2.5
|
1362
|
1392
|
DANIEL KHAIN
|
MI
|
2.5
|
1382
|
1356
|
MICHAEL J MARTIN
|
MI
|
2.5
|
1291
|
1286
|
SHIVAM JHA
|
MI
|
2.5
|
1056
|
1296
|
TEJAS AYYAGARI
|
MI
|
2.5
|
1011
|
1356
|
ETHAN GUO
|
MI
|
2.5
|
935
|
1495
|
JOSE C YBARRA
|
MI
|
2.0
|
1393
|
1345
|
LARRY HODGE
|
MI
|
2.0
|
1270
|
1206
|
ALEX KONG
|
MI
|
2.0
|
1186
|
1406
|
MARISA RICCI
|
MI
|
2.0
|
1153
|
1414
|
MICHAEL LU
|
MI
|
2.0
|
1092
|
1363
|
VIRAJ MOHILE
|
MI
|
2.0
|
917
|
1391
|
SEAN M MC CORMICK
|
MI
|
2.0
|
853
|
1319
|
JULIA SHEN
|
MI
|
1.5
|
967
|
1330
|
JEZZEL FARKAS
|
ON
|
1.5
|
955
|
1327
|
ASHWIN BALAJI
|
MI
|
1.0
|
1530
|
1186
|
THOMAS JOSEPH HOSMER
|
MI
|
1.0
|
1175
|
1350
|
BEN LI
|
MI
|
1.0
|
1163
|
1263
|
- Export the data into csv format:
### Final Output to csv file
write.csv(playerSummaryDF, "Chess_Players_Summary.csv",row.names = FALSE)