Rathish Parayil Sasidharan

Overview

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

Prerequisites

Load required packages

library("stringr")

Read the input text file

tournamentDf<-read.csv("https://raw.githubusercontent.com/rathish-ps/Data607-Assignment/main/tournamentinfo.txt",header=FALSE)

tournamentData <- matrix(unlist(tournamentDf), byrow=TRUE)

Restructure the data

dotLineSeq <- seq(1,length(tournamentData),3)
#Remove all --- line 
linn1<-tournamentData[-dotLineSeq]

# Read all the alternate lines 

#Read player names
playerInfo <- linn1[seq(3,length(linn1),2)]

# Read state and pre-tournament ratings
playerDetails <- linn1[seq(4,length(linn1),2)]

#combile the player information and state information into single vector
playerInfo<-paste0(playerInfo,playerDetails)

playerInfo
##  [1] "    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] "    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    |"
##  [3] "    3 | ADITYA BAJAJ                    |6.0  |L   8|W  61|W  25|W  21|W  11|W  13|W  12|   MI | 14959604 / R: 1384   ->1640     |N:2  |W    |B    |W    |B    |W    |B    |W    |"
##  [4] "    4 | PATRICK H SCHILLING             |5.5  |W  23|D  28|W   2|W  26|D   5|W  19|D   1|   MI | 12616049 / R: 1716   ->1744     |N:2  |W    |B    |W    |B    |W    |B    |B    |"
##  [5] "    5 | HANSHI ZUO                      |5.5  |W  45|W  37|D  12|D  13|D   4|W  14|W  17|   MI | 14601533 / R: 1655   ->1690     |N:2  |B    |W    |B    |W    |B    |W    |B    |"
##  [6] "    6 | HANSEN SONG                     |5.0  |W  34|D  29|L  11|W  35|D  10|W  27|W  21|   OH | 15055204 / R: 1686   ->1687     |N:3  |W    |B    |W    |B    |B    |W    |B    |"
##  [7] "    7 | GARY DEE SWATHELL               |5.0  |W  57|W  46|W  13|W  11|L   1|W   9|L   2|   MI | 11146376 / R: 1649   ->1673     |N:3  |W    |B    |W    |B    |B    |W    |W    |"
##  [8] "    8 | EZEKIEL HOUGHTON                |5.0  |W   3|W  32|L  14|L   9|W  47|W  28|W  19|   MI | 15142253 / R: 1641P17->1657P24  |N:3  |B    |W    |B    |W    |B    |W    |W    |"
##  [9] "    9 | STEFANO LEE                     |5.0  |W  25|L  18|W  59|W   8|W  26|L   7|W  20|   ON | 14954524 / R: 1411   ->1564     |N:2  |W    |B    |W    |B    |W    |B    |B    |"
## [10] "   10 | ANVIT RAO                       |5.0  |D  16|L  19|W  55|W  31|D   6|W  25|W  18|   MI | 14150362 / R: 1365   ->1544     |N:3  |W    |W    |B    |B    |W    |B    |W    |"
## [11] "   11 | CAMERON WILLIAM MC LEMAN        |4.5  |D  38|W  56|W   6|L   7|L   3|W  34|W  26|   MI | 12581589 / R: 1712   ->1696     |N:3  |B    |W    |B    |W    |B    |W    |B    |"
## [12] "   12 | KENNETH J TACK                  |4.5  |W  42|W  33|D   5|W  38|H    |D   1|L   3|   MI | 12681257 / R: 1663   ->1670     |N:3  |W    |B    |W    |B    |     |W    |B    |"
## [13] "   13 | TORRANCE HENRY JR               |4.5  |W  36|W  27|L   7|D   5|W  33|L   3|W  32|   MI | 15082995 / R: 1666   ->1662     |N:3  |B    |W    |B    |B    |W    |W    |B    |"
## [14] "   14 | BRADLEY SHAW                    |4.5  |W  54|W  44|W   8|L   1|D  27|L   5|W  31|   MI | 10131499 / R: 1610   ->1618     |N:3  |W    |B    |W    |W    |B    |B    |W    |"
## [15] "   15 | ZACHARY JAMES HOUGHTON          |4.5  |D  19|L  16|W  30|L  22|W  54|W  33|W  38|   MI | 15619130 / R: 1220P13->1416P20  |N:3  |B    |B    |W    |W    |B    |B    |W    |"
## [16] "   16 | MIKE NIKITIN                    |4.0  |D  10|W  15|H    |W  39|L   2|W  36|U    |   MI | 10295068 / R: 1604   ->1613     |N:3  |B    |W    |     |B    |W    |B    |     |"
## [17] "   17 | RONALD GRZEGORCZYK              |4.0  |W  48|W  41|L  26|L   2|W  23|W  22|L   5|   MI | 10297702 / R: 1629   ->1610     |N:3  |W    |B    |W    |B    |W    |B    |W    |"
## [18] "   18 | DAVID SUNDEEN                   |4.0  |W  47|W   9|L   1|W  32|L  19|W  38|L  10|   MI | 11342094 / R: 1600   ->1600     |N:3  |B    |W    |B    |W    |B    |W    |B    |"
## [19] "   19 | DIPANKAR ROY                    |4.0  |D  15|W  10|W  52|D  28|W  18|L   4|L   8|   MI | 14862333 / R: 1564   ->1570     |N:3  |W    |B    |W    |B    |W    |W    |B    |"
## [20] "   20 | JASON ZHENG                     |4.0  |L  40|W  49|W  23|W  41|W  28|L   2|L   9|   MI | 14529060 / R: 1595   ->1569     |N:4  |W    |B    |W    |B    |W    |B    |W    |"
## [21] "   21 | DINH DANG BUI                   |4.0  |W  43|L   1|W  47|L   3|W  40|W  39|L   6|   ON | 15495066 / R: 1563P22->1562     |N:3  |B    |W    |B    |W    |W    |B    |W    |"
## [22] "   22 | EUGENE L MCCLURE                |4.0  |W  64|D  52|L  28|W  15|H    |L  17|W  40|   MI | 12405534 / R: 1555   ->1529     |N:4  |W    |B    |W    |B    |     |W    |B    |"
## [23] "   23 | ALAN BUI                        |4.0  |L   4|W  43|L  20|W  58|L  17|W  37|W  46|   ON | 15030142 / R: 1363   ->1371     |     |B    |W    |B    |W    |B    |W    |B    |"
## [24] "   24 | MICHAEL R ALDRICH               |4.0  |L  28|L  47|W  43|L  25|W  60|W  44|W  39|   MI | 13469010 / R: 1229   ->1300     |N:4  |B    |W    |B    |B    |W    |W    |B    |"
## [25] "   25 | LOREN SCHWIEBERT                |3.5  |L   9|W  53|L   3|W  24|D  34|L  10|W  47|   MI | 12486656 / R: 1745   ->1681     |N:4  |B    |W    |B    |W    |B    |W    |B    |"
## [26] "   26 | MAX ZHU                         |3.5  |W  49|W  40|W  17|L   4|L   9|D  32|L  11|   ON | 15131520 / R: 1579   ->1564     |N:4  |B    |W    |B    |W    |B    |W    |W    |"
## [27] "   27 | GAURAV GIDWANI                  |3.5  |W  51|L  13|W  46|W  37|D  14|L   6|U    |   MI | 14476567 / R: 1552   ->1539     |N:4  |W    |B    |W    |B    |W    |B    |     |"
## [28] "   28 | SOFIA ADINA STANESCU-BELLU      |3.5  |W  24|D   4|W  22|D  19|L  20|L   8|D  36|   MI | 14882954 / R: 1507   ->1513     |N:3  |W    |W    |B    |W    |B    |B    |W    |"
## [29] "   29 | CHIEDOZIE OKORIE                |3.5  |W  50|D   6|L  38|L  34|W  52|W  48|U    |   MI | 15323285 / R: 1602P6 ->1508P12  |N:4  |B    |W    |B    |W    |W    |B    |     |"
## [30] "   30 | GEORGE AVERY JONES              |3.5  |L  52|D  64|L  15|W  55|L  31|W  61|W  50|   ON | 12577178 / R: 1522   ->1444     |     |W    |B    |B    |W    |W    |B    |B    |"
## [31] "   31 | RISHI SHETTY                    |3.5  |L  58|D  55|W  64|L  10|W  30|W  50|L  14|   MI | 15131618 / R: 1494   ->1444     |     |B    |W    |B    |W    |B    |W    |B    |"
## [32] "   32 | JOSHUA PHILIP MATHEWS           |3.5  |W  61|L   8|W  44|L  18|W  51|D  26|L  13|   ON | 14073750 / R: 1441   ->1433     |N:4  |W    |B    |W    |B    |W    |B    |W    |"
## [33] "   33 | JADE GE                         |3.5  |W  60|L  12|W  50|D  36|L  13|L  15|W  51|   MI | 14691842 / R: 1449   ->1421     |     |B    |W    |B    |W    |B    |W    |B    |"
## [34] "   34 | MICHAEL JEFFERY THOMAS          |3.5  |L   6|W  60|L  37|W  29|D  25|L  11|W  52|   MI | 15051807 / R: 1399   ->1400     |     |B    |W    |B    |B    |W    |B    |W    |"
## [35] "   35 | JOSHUA DAVID LEE                |3.5  |L  46|L  38|W  56|L   6|W  57|D  52|W  48|   MI | 14601397 / R: 1438   ->1392     |     |W    |W    |B    |W    |B    |B    |W    |"
## [36] "   36 | SIDDHARTH JHA                   |3.5  |L  13|W  57|W  51|D  33|H    |L  16|D  28|   MI | 14773163 / R: 1355   ->1367     |N:4  |W    |B    |W    |B    |     |W    |B    |"
## [37] "   37 | AMIYATOSH PWNANANDAM            |3.5  |B    |L   5|W  34|L  27|H    |L  23|W  61|   MI | 15489571 / R:  980P12->1077P17  |     |     |B    |W    |W    |     |B    |W    |"
## [38] "   38 | BRIAN LIU                       |3.0  |D  11|W  35|W  29|L  12|H    |L  18|L  15|   MI | 15108523 / R: 1423   ->1439     |N:4  |W    |B    |W    |W    |     |B    |B    |"
## [39] "   39 | JOEL R HENDON                   |3.0  |L   1|W  54|W  40|L  16|W  44|L  21|L  24|   MI | 12923035 / R: 1436P23->1413     |N:4  |B    |W    |B    |W    |B    |W    |W    |"
## [40] "   40 | FOREST ZHANG                    |3.0  |W  20|L  26|L  39|W  59|L  21|W  56|L  22|   MI | 14892710 / R: 1348   ->1346     |     |B    |B    |W    |W    |B    |W    |W    |"
## [41] "   41 | KYLE WILLIAM MURPHY             |3.0  |W  59|L  17|W  58|L  20|X    |U    |U    |   MI | 15761443 / R: 1403P5 ->1341P9   |     |B    |W    |B    |W    |     |     |     |"
## [42] "   42 | JARED GE                        |3.0  |L  12|L  50|L  57|D  60|D  61|W  64|W  56|   MI | 14462326 / R: 1332   ->1256     |     |B    |W    |B    |B    |W    |W    |B    |"
## [43] "   43 | ROBERT GLEN VASEY               |3.0  |L  21|L  23|L  24|W  63|W  59|L  46|W  55|   MI | 14101068 / R: 1283   ->1244     |     |W    |B    |W    |W    |B    |B    |W    |"
## [44] "   44 | JUSTIN D SCHILLING              |3.0  |B    |L  14|L  32|W  53|L  39|L  24|W  59|   MI | 15323504 / R: 1199   ->1199     |     |     |W    |B    |B    |W    |B    |W    |"
## [45] "   45 | DEREK YAN                       |3.0  |L   5|L  51|D  60|L  56|W  63|D  55|W  58|   MI | 15372807 / R: 1242   ->1191     |     |W    |B    |W    |B    |W    |B    |W    |"
## [46] "   46 | JACOB ALEXANDER LAVALLEY        |3.0  |W  35|L   7|L  27|L  50|W  64|W  43|L  23|   MI | 15490981 / R:  377P3 ->1076P10  |     |B    |W    |B    |W    |B    |W    |W    |"
## [47] "   47 | ERIC WRIGHT                     |2.5  |L  18|W  24|L  21|W  61|L   8|D  51|L  25|   MI | 12533115 / R: 1362   ->1341     |     |W    |B    |W    |B    |W    |B    |W    |"
## [48] "   48 | DANIEL KHAIN                    |2.5  |L  17|W  63|H    |D  52|H    |L  29|L  35|   MI | 14369165 / R: 1382   ->1335     |     |B    |W    |     |B    |     |W    |B    |"
## [49] "   49 | MICHAEL J MARTIN                |2.5  |L  26|L  20|D  63|D  64|W  58|H    |U    |   MI | 12531685 / R: 1291P12->1259P17  |     |W    |W    |B    |W    |B    |     |     |"
## [50] "   50 | SHIVAM JHA                      |2.5  |L  29|W  42|L  33|W  46|H    |L  31|L  30|   MI | 14773178 / R: 1056   ->1111     |     |W    |B    |W    |B    |     |B    |W    |"
## [51] "   51 | TEJAS AYYAGARI                  |2.5  |L  27|W  45|L  36|W  57|L  32|D  47|L  33|   MI | 15205474 / R: 1011   ->1097     |     |B    |W    |B    |W    |B    |W    |W    |"
## [52] "   52 | ETHAN GUO                       |2.5  |W  30|D  22|L  19|D  48|L  29|D  35|L  34|   MI | 14918803 / R:  935   ->1092     |N:4  |B    |W    |B    |W    |B    |W    |B    |"
## [53] "   53 | JOSE C YBARRA                   |2.0  |H    |L  25|H    |L  44|U    |W  57|U    |   MI | 12578849 / R: 1393   ->1359     |     |     |B    |     |W    |     |W    |     |"
## [54] "   54 | LARRY HODGE                     |2.0  |L  14|L  39|L  61|B    |L  15|L  59|W  64|   MI | 12836773 / R: 1270   ->1200     |     |B    |B    |W    |     |W    |B    |W    |"
## [55] "   55 | ALEX KONG                       |2.0  |L  62|D  31|L  10|L  30|B    |D  45|L  43|   MI | 15412571 / R: 1186   ->1163     |     |W    |B    |W    |B    |     |W    |B    |"
## [56] "   56 | MARISA RICCI                    |2.0  |H    |L  11|L  35|W  45|H    |L  40|L  42|   MI | 14679887 / R: 1153   ->1140     |     |     |B    |W    |W    |     |B    |W    |"
## [57] "   57 | MICHAEL LU                      |2.0  |L   7|L  36|W  42|L  51|L  35|L  53|B    |   MI | 15113330 / R: 1092   ->1079     |     |B    |W    |W    |B    |W    |B    |     |"
## [58] "   58 | VIRAJ MOHILE                    |2.0  |W  31|L   2|L  41|L  23|L  49|B    |L  45|   MI | 14700365 / R:  917   -> 941     |     |W    |B    |W    |B    |W    |     |B    |"
## [59] "   59 | SEAN M MC CORMICK               |2.0  |L  41|B    |L   9|L  40|L  43|W  54|L  44|   MI | 12841036 / R:  853   -> 878     |     |W    |     |B    |B    |W    |W    |B    |"
## [60] "   60 | JULIA SHEN                      |1.5  |L  33|L  34|D  45|D  42|L  24|H    |U    |   MI | 14579262 / R:  967   -> 984     |     |W    |B    |B    |W    |B    |     |     |"
## [61] "   61 | JEZZEL FARKAS                   |1.5  |L  32|L   3|W  54|L  47|D  42|L  30|L  37|   ON | 15771592 / R:  955P11-> 979P18  |     |B    |W    |B    |W    |B    |W    |B    |"
## [62] "   62 | ASHWIN BALAJI                   |1.0  |W  55|U    |U    |U    |U    |U    |U    |   MI | 15219542 / R: 1530   ->1535     |     |B    |     |     |     |     |     |     |"
## [63] "   63 | THOMAS JOSEPH HOSMER            |1.0  |L   2|L  48|D  49|L  43|L  45|H    |U    |   MI | 15057092 / R: 1175   ->1125     |     |W    |B    |W    |B    |B    |     |     |"
## [64] "   64 | BEN LI                          |1.0  |L  22|D  30|L  31|D  49|L  46|L  42|L  54|   MI | 15006561 / R: 1163   ->1112     |     |B    |W    |W    |B    |W    |B    |B    |"

Create a dataframe with player information

# Create an Empty data frame 
playerInfoDf <- data.frame(data1 = character(0),Name = character(0),data3= character(0),Round1= character(0),Round2= character(0),Round3= character(0),Round4= character(0),Round5= character(0),Round6= character(0),Round7= character(0),state= character(0),data12= character(0))

# Split the string by | and populate records in data frame (only first 12 columns)
i<- 1
while (i <= length(playerInfo)){
    playerInfoDf[nrow(playerInfoDf) + 1, ] <- str_trim(strsplit(playerInfo[i],"|",fixed=TRUE)[[1]])[1:12]
    i <- i+1
}

head(playerInfoDf)
##   data1                Name data3 Round1 Round2 Round3 Round4 Round5 Round6
## 1     1            GARY HUA   6.0  W  39  W  21  W  18  W  14  W   7  D  12
## 2     2     DAKSHESH DARURI   6.0  W  63  W  58  L   4  W  17  W  16  W  20
## 3     3        ADITYA BAJAJ   6.0  L   8  W  61  W  25  W  21  W  11  W  13
## 4     4 PATRICK H SCHILLING   5.5  W  23  D  28  W   2  W  26  D   5  W  19
## 5     5          HANSHI ZUO   5.5  W  45  W  37  D  12  D  13  D   4  W  14
## 6     6         HANSEN SONG   5.0  W  34  D  29  L  11  W  35  D  10  W  27
##   Round7 state                      data12
## 1  D   4    ON 15445895 / R: 1794   ->1817
## 2  W   7    MI 14598900 / R: 1553   ->1663
## 3  W  12    MI 14959604 / R: 1384   ->1640
## 4  D   1    MI 12616049 / R: 1716   ->1744
## 5  W  17    MI 14601533 / R: 1655   ->1690
## 6  W  21    OH 15055204 / R: 1686   ->1687

Create final dataframe for CSV

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

finalResultCSVFrame <- data.frame(Name = character(0),State = character(0),TotalPoints= character(0),PreRating= character(0),AvgRatingOfOpp= character(0))

#iterate each record
for(i in 1:nrow(playerInfoDf)){
  value3 <- 0
  cnt <-0
   # extract opponent id for each round  (1 to 7 ) -from column 4,10
   for (j in 4:10){
     
     #split each round column by space
     roundVals <- strsplit(playerInfoDf[i,j], "\\s+")
     
     if(roundVals[[1]][1]== "W" ||  roundVals[[1]][1]== "L"||  roundVals[[1]][1]== "D"){
       
       #using the row id ,find opponent Pre-rating column
       value2 <- playerInfoDf[roundVals[[1]][2],12]
       
       #find the 2nd number ,ie number after R: ,and sum it
       value3 <- value3 + as.numeric(regmatches(value2 , gregexpr("[[:digit:]]+", value2 ))[[1]][2])
       cnt <- cnt +1
     }
     
   }
   #find the mean value and round it
   meanValue <- round(value3/cnt)
 
  #find the player pre-rating info  
  playerPreValue <-  as.numeric(regmatches(playerInfoDf[i,12] , gregexpr("[[:digit:]]+", playerInfoDf[i,12] ))[[1]][2])
  
  finalResultCSVFrame[nrow(finalResultCSVFrame) + 1, ] <-c(playerInfoDf[i,'Name'],playerInfoDf[i,'state'],playerInfoDf[i,'data3'],playerPreValue,meanValue)
}

finalResultCSVFrame
##                          Name State TotalPoints PreRating AvgRatingOfOpp
## 1                    GARY HUA    ON         6.0      1794           1605
## 2             DAKSHESH DARURI    MI         6.0      1553           1469
## 3                ADITYA BAJAJ    MI         6.0      1384           1564
## 4         PATRICK H SCHILLING    MI         5.5      1716           1574
## 5                  HANSHI ZUO    MI         5.5      1655           1501
## 6                 HANSEN SONG    OH         5.0      1686           1519
## 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           1468
## 12             KENNETH J TACK    MI         4.5      1663           1506
## 13          TORRANCE HENRY JR    MI         4.5      1666           1498
## 14               BRADLEY SHAW    MI         4.5      1610           1515
## 15     ZACHARY JAMES HOUGHTON    MI         4.5      1220           1484
## 16               MIKE NIKITIN    MI         4.0      1604           1386
## 17         RONALD GRZEGORCZYK    MI         4.0      1629           1499
## 18              DAVID SUNDEEN    MI         4.0      1600           1480
## 19               DIPANKAR ROY    MI         4.0      1564           1426
## 20                JASON ZHENG    MI         4.0      1595           1411
## 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           1214
## 24          MICHAEL R ALDRICH    MI         4.0      1229           1357
## 25           LOREN SCHWIEBERT    MI         3.5      1745           1363
## 26                    MAX ZHU    ON         3.5      1579           1507
## 27             GAURAV GIDWANI    MI         3.5      1552           1222
## 28 SOFIA ADINA STANESCU-BELLU    MI         3.5      1507           1522
## 29           CHIEDOZIE OKORIE    MI         3.5      1602           1314
## 30         GEORGE AVERY JONES    ON         3.5      1522           1144
## 31               RISHI SHETTY    MI         3.5      1494           1260
## 32      JOSHUA PHILIP MATHEWS    ON         3.5      1441           1379
## 33                    JADE GE    MI         3.5      1449           1277
## 34     MICHAEL JEFFERY THOMAS    MI         3.5      1399           1375
## 35           JOSHUA DAVID LEE    MI         3.5      1438           1150
## 36              SIDDHARTH JHA    MI         3.5      1355           1388
## 37       AMIYATOSH PWNANANDAM    MI         3.5       980           1385
## 38                  BRIAN LIU    MI         3.0      1423           1539
## 39              JOEL R HENDON    MI         3.0      1436           1430
## 40               FOREST ZHANG    MI         3.0      1348           1391
## 41        KYLE WILLIAM MURPHY    MI         3.0      1403           1248
## 42                   JARED GE    MI         3.0      1332           1150
## 43          ROBERT GLEN VASEY    MI         3.0      1283           1107
## 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           1358
## 47                ERIC WRIGHT    MI         2.5      1362           1392
## 48               DANIEL KHAIN    MI         2.5      1382           1356
## 49           MICHAEL J MARTIN    MI         2.5      1291           1286
## 50                 SHIVAM JHA    MI         2.5      1056           1296
## 51             TEJAS AYYAGARI    MI         2.5      1011           1356
## 52                  ETHAN GUO    MI         2.5       935           1495
## 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
#write the data into CSV file
write.csv(finalResultCSVFrame,"playerInfo.csv")

Conclusion

The application read the text input file, transform the data into required output format and finally write the data frame into a CSV file (playerInfo.csv)