Description of the Assignment

In this project, you’re given a text file with chess tournament results where the information has some structure. Your job is to create an R Markdown file that generates a .CSV file (that could for example be imported into a SQL database) with the following information for all of the players:

Player’s Name, Player’s State, Total Number of Points, Player’s Pre-Rating, and Average Pre Chess Rating of Opponents.

Read in the file

library(stringr)

chess_text <- readLines("https://raw.githubusercontent.com/L-Velasco/Fall16_IS607/master/tournamentinfo.txt", warn = FALSE)

Get the lines which contain the information

line1 <- c(seq(5,length(chess_text),by=3))
line2 <- c(seq(6,length(chess_text),by=3))

Use the line index to get the detail row information

Name <- str_replace_all(str_extract(chess_text[line1],"([|]).+?\\1"),"[|]","")
State <- str_trim(str_extract(chess_text[line2],"[[:blank:]]+\\w+"))
Points <- str_sub(chess_text[line1],str_locate(chess_text[line1],"[.]")[1]-1,str_locate(chess_text[line1],"[.]")[1]+1)
Prerating <- as.numeric(str_extract(str_sub(chess_text[line2],str_locate(chess_text[line2],":")[1],str_locate(chess_text[line2],">")[1]),"[[:digit:]]+"))

Create a data frame to put together the information (all columns except the oppoents average prerating)

row_info <- data.frame(Name,State,Points,Prerating, stringsAsFactors = FALSE)

Loop through the newly created data frame to get the opponents’ average pre rating per player

OppAvgRating <- NULL
for (i in seq(5,length(chess_text),by=3))
{
  a <- c(as.numeric(unlist(str_extract_all(str_sub(chess_text[i], start=51),"[[:digit:]]+"))))
  OppAvgRating <- c(OppAvgRating, as.integer(mean(row_info$Prerating[a])))
}

Append the average column to existing dataframe

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

Export all players info to the working directory in CSV file format

write.csv(all_info,file="IS607 Project 1 - Chess Tournament Rating.csv")