library(devtools)
## Loading required package: usethis
library(RCurl)
library(plyr)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:plyr':
##
## arrange, count, desc, failwith, id, mutate, rename, summarise,
## summarize
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats 1.0.0 ✔ readr 2.1.5
## ✔ ggplot2 3.4.4 ✔ stringr 1.5.1
## ✔ lubridate 1.9.3 ✔ tibble 3.2.1
## ✔ purrr 1.0.2 ✔ tidyr 1.3.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::arrange() masks plyr::arrange()
## ✖ purrr::compact() masks plyr::compact()
## ✖ tidyr::complete() masks RCurl::complete()
## ✖ dplyr::count() masks plyr::count()
## ✖ dplyr::desc() masks plyr::desc()
## ✖ dplyr::failwith() masks plyr::failwith()
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::id() masks plyr::id()
## ✖ dplyr::lag() masks stats::lag()
## ✖ dplyr::mutate() masks plyr::mutate()
## ✖ dplyr::rename() masks plyr::rename()
## ✖ dplyr::summarise() masks plyr::summarise()
## ✖ dplyr::summarize() masks plyr::summarize()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(DescTools)
library(ggpubr)
##
## Attaching package: 'ggpubr'
##
## The following object is masked from 'package:plyr':
##
## mutate
library(openintro)
## Loading required package: airports
## Loading required package: cherryblossom
## Loading required package: usdata
##
## Attaching package: 'openintro'
##
## The following object is masked from 'package:DescTools':
##
## cards
library (readr)
library(rvest)
##
## Attaching package: 'rvest'
##
## The following object is masked from 'package:readr':
##
## guess_encoding
Chess Tournament results txt file was downloaded and put into github. The data was then scrapped from github. States and player pre ratings were extracted from the text file and stored into a data frame. A matrix that stored the opponent pre ratings was constructed, then the average pre rating (of a player’s opponents) was calculated and stored into a data frame. For the final data frame for csv construction contains: Player’s Name, Player’s State, Total Number of Points, Player’s Pre-Rating, and Average Pre Chess Rating of Opponents.
c <- getURL("https://bbhosted.cuny.edu/bbcswebdav/pid-81630190-dt-content-rid-636011541_1/xid-636011541_1")
#original URL does not seem to work.
#downloading from blackboard is ill advised due to having the need to be signed in
c <- getURL("https://raw.githubusercontent.com/division-zero/Data607/main/Project1/7645617.txt")
#moved txt file to github where it would be publicly accessible.
view(c)
c1 <- str_replace_all(c,"[|]",",")
c2 <- str_replace_all(c1,"[-]","")
#attempt to convert the string into a readable format by replacing "|" into "," removing "-"
glimpse(c2)
## chr "\n Pair , Player Name ,Total,Round,Round,Round,Round,Round,Round,Round, \n Num , USCF ID /"| __truncated__
#the text file is now similar to a csv
The text file was converted into a readable format.
df_attempt2 <- data.frame(read.csv(text = c2))
#reading this as a csv put the data into a data frame.
glimpse(df_attempt2)
## Rows: 129
## Columns: 11
## $ Pair <chr> " Num ", " 1 ", " ON ", " 2 ", " MI ", " 3 "…
## $ Player.Name <chr> " USCF ID / Rtg (Pre>Post) ", " GARY HUA …
## $ Total <chr> " Pts ", "6.0 ", "N:2 ", "6.0 ", "N:2 ", "6.0 ", "N:2…
## $ Round <chr> " 1 ", "W 39", "W ", "W 63", "B ", "L 8", "W …
## $ Round.1 <chr> " 2 ", "W 21", "B ", "W 58", "W ", "W 61", "B …
## $ Round.2 <chr> " 3 ", "W 18", "W ", "L 4", "B ", "W 25", "W …
## $ Round.3 <chr> " 4 ", "W 14", "B ", "W 17", "W ", "W 21", "B …
## $ Round.4 <chr> " 5 ", "W 7", "W ", "W 16", "B ", "W 11", "W …
## $ Round.5 <chr> " 6 ", "D 12", "B ", "W 20", "W ", "W 13", "B …
## $ Round.6 <chr> " 7 ", "D 4", "W ", "W 7", "B ", "W 12", "W …
## $ X <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
A data frame was constructed from the text file that
contained all the data. The data could now be manipulated and
cleaned.
newdf3 <- slice(df_attempt2, seq(1, nrow(df_attempt2), 2))
#select every other row with the scores
newdf4 <- slice(df_attempt2, seq(2, nrow(df_attempt2), 2))
#select every other row with the people
glimpse(newdf3)
## Rows: 65
## Columns: 11
## $ Pair <chr> " Num ", " ON ", " MI ", " MI ", " MI ", " MI "…
## $ Player.Name <chr> " USCF ID / Rtg (Pre>Post) ", " 15445895 / R: 1794 …
## $ Total <chr> " Pts ", "N:2 ", "N:2 ", "N:2 ", "N:2 ", "N:2 ", "N:3…
## $ Round <chr> " 1 ", "W ", "B ", "W ", "W ", "B ", "W …
## $ Round.1 <chr> " 2 ", "B ", "W ", "B ", "B ", "W ", "B …
## $ Round.2 <chr> " 3 ", "W ", "B ", "W ", "W ", "B ", "W …
## $ Round.3 <chr> " 4 ", "B ", "W ", "B ", "B ", "W ", "B …
## $ Round.4 <chr> " 5 ", "W ", "B ", "W ", "W ", "B ", "B …
## $ Round.5 <chr> " 6 ", "B ", "W ", "B ", "B ", "W ", "W …
## $ Round.6 <chr> " 7 ", "W ", "B ", "W ", "B ", "B ", "B …
## $ X <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
glimpse(newdf4)
## Rows: 64
## Columns: 11
## $ Pair <chr> " 1 ", " 2 ", " 3 ", " 4 ", " 5 ", " 6 "…
## $ Player.Name <chr> " GARY HUA ", " DAKSHESH DARURI …
## $ Total <chr> "6.0 ", "6.0 ", "6.0 ", "5.5 ", "5.5 ", "5.0 ", "5.0…
## $ Round <chr> "W 39", "W 63", "L 8", "W 23", "W 45", "W 34", "W …
## $ Round.1 <chr> "W 21", "W 58", "W 61", "D 28", "W 37", "D 29", "W …
## $ Round.2 <chr> "W 18", "L 4", "W 25", "W 2", "D 12", "L 11", "W …
## $ Round.3 <chr> "W 14", "W 17", "W 21", "W 26", "D 13", "W 35", "W …
## $ Round.4 <chr> "W 7", "W 16", "W 11", "D 5", "D 4", "D 10", "L …
## $ Round.5 <chr> "D 12", "W 20", "W 13", "W 19", "W 14", "W 27", "W …
## $ Round.6 <chr> "D 4", "W 7", "W 12", "D 1", "W 17", "W 21", "L …
## $ X <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
newdf5 <- cbind(newdf3[2:nrow(newdf3),1:2],newdf4)
#combine the scores and the people excluding any unnecessary columns.
newdf6 <- subset(newdf5, select = -c(X) )
#subtract the column that only contains "NA"
newdf7 <- newdf6 %>%
rename(State = 1, Player.Score = 2, Player.Number = 3, Player.Names = 4)
#rename the columns for clarity
list1 <- lapply(newdf7[,2], function(x) str_extract(x, "R:( )*[0-9]*"))
# extract all the pre scores/ratings with R:
list2 <- lapply(list1, function(x) gsub("[^0-9]+", "",list1))
#extract all the pre scores with "R:" removed
newdf8 <- data.frame(list2)
#convert list to data frame
scoredf <- data.frame(newdf8[,1])
# remove extra columns in score data frame
newdf9 <- cbind(newdf7,scoredf)
#combine the pre ratings back into the dataframe with the other formatting removed
newdf10 <- newdf9 %>%
rename(Pre.Scores = 13)
# renamed the pre rating to pre scores
glimpse(newdf10)
## Rows: 64
## Columns: 13
## $ State <chr> " ON ", " MI ", " MI ", " MI ", " MI ", " OH…
## $ Player.Score <chr> " 15445895 / R: 1794 >1817 ", " 14598900 / R: 1553…
## $ Player.Number <chr> " 1 ", " 2 ", " 3 ", " 4 ", " 5 ", " 6…
## $ Player.Names <chr> " GARY HUA ", " DAKSHESH DARURI …
## $ Total <chr> "6.0 ", "6.0 ", "6.0 ", "5.5 ", "5.5 ", "5.0 ", "5…
## $ Round <chr> "W 39", "W 63", "L 8", "W 23", "W 45", "W 34", "W…
## $ Round.1 <chr> "W 21", "W 58", "W 61", "D 28", "W 37", "D 29", "W…
## $ Round.2 <chr> "W 18", "L 4", "W 25", "W 2", "D 12", "L 11", "W…
## $ Round.3 <chr> "W 14", "W 17", "W 21", "W 26", "D 13", "W 35", "W…
## $ Round.4 <chr> "W 7", "W 16", "W 11", "D 5", "D 4", "D 10", "L…
## $ Round.5 <chr> "D 12", "W 20", "W 13", "W 19", "W 14", "W 27", "W…
## $ Round.6 <chr> "D 4", "W 7", "W 12", "D 1", "W 17", "W 21", "L…
## $ Pre.Scores <chr> "1794", "1553", "1384", "1716", "1655", "1686", "1649", …
view(newdf10[,6:12])
The pre rating were extracted for each player and put into a
new column.
roundsdf <- data.frame(lapply(newdf10[,6:12], function(x) str_extract(x, "[0-9]+")))
#extract the person number each person played in rounds
newdf11 <- add_column(newdf10,roundsdf)
#combine the columns of the person number played and the dataframe
newdf12 <- newdf11[ -c(1,6:12) ]
#remove the extra round columns
newdf13 <- newdf12 %>%
rename(Round = 6, Round.1 = 7, Round.2 = 8, Round.3 = 9, Round.4 = 10, Round.5 = 11, Round.6 = 12)
#put the opponent player numbers into a dataframe.
matrixdf <- matrix(ncol = 12, nrow = 64)
for(a in 1:64){
for(i in 6:12){
g <- newdf13[a,i]
h <- scoredf[g,1]
newdf14 <- data.frame(matrixdf[a,i] <- h)
}
}
#go through extract the player's pre rating for each player number that each player played. Store it in a matrix in positions corresponding to the player and the round. each row will have the opponent pre rating score.
as.numeric(matrixdf)
## [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [16] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [31] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [46] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [61] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [76] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [91] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [106] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [121] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [136] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [151] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [166] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [181] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [196] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [211] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [226] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [241] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [256] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [271] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [286] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [301] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## [316] NA NA NA NA NA 1436 1175 1641 1363 1242 1399 1092 1384 1745 1604
## [331] 1423 1332 1355 1270 1564 1365 1382 1362 1220 1348 1283 1163 1716 1507 1411
## [346] 1291 1011 1229 1056 935 917 955 967 1686 377 1666 NA 1712 1794 1595
## [361] 853 1663 1563 NA 1655 1438 1600 1629 1579 1602 1552 1522 NA 1610 1530
## [376] NA 1649 1494 1403 1449 1441 1186 1553 1555 1563 917 955 1507 980 1602
## [391] 377 1441 1600 1564 1153 1449 1552 1199 1604 1220 1403 1411 1365 1291 1794
## [406] 935 1283 1362 1393 1348 1666 1716 1686 1163 1186 1641 1663 967 1423 1092
## [421] 1655 1438 1270 1579 1629 1056 1363 1610 1011 1649 1229 1175 1595 1332 1242
## [436] 1555 1745 1436 1494 1712 1355 1553 NA 1399 1384 NA 1382 1522 1600 1716
## [451] 1745 1553 1663 1712 1666 1610 853 1186 1686 1655 1649 1641 1522 NA 1579
## [466] 1794 935 1363 1362 1507 1595 1283 1384 1629 377 1555 1423 1220 1163 1199
## [481] 1056 980 1153 1011 1399 1602 1348 1436 917 1092 1229 1441 967 1552 1563
## [496] NA 1175 1449 1355 1564 NA 955 1365 1438 1332 1403 1411 1242 1270 NA
## [511] 1291 1494 1610 1629 1563 1579 1666 1438 1712 1411 1641 1494 1649 1423 1655
## [526] 1794 1555 1436 1553 1441 1507 1403 1384 1220 917 1745 1229 1716 980 1564
## [541] 1399 1186 1365 1600 1355 1602 1686 1449 1552 1663 1604 853 1595 967 1175
## [556] 1393 1153 1056 955 935 1163 377 1092 1382 1199 NA 1522 1242 1011 1363
## [571] 1348 1332 1362 NA 1283 1291 1649 1604 1712 1655 1716 1365 1794 1362 1579
## [586] 1686 1384 NA 1449 1552 1270 1553 1363 1564 1600 1507 1348 NA 1629 967
## [601] 1399 1411 1610 1595 935 1494 1522 1011 1666 1745 1092 NA NA NA 1199
## [616] 1563 NA 955 853 1436 1175 1163 1641 NA 917 NA 1441 1602 NA 1220
## [631] NA NA 1438 1291 1283 1229 1332 NA 1242 377 1663 1595 1666 1564 1610
## [646] 1552 1411 1507 1649 1745 1399 1794 1384 1655 1449 1355 1555 1423 1716 1553
## [661] 1436 1629 980 1199 1365 1441 1686 1641 1382 955 1056 1579 1220 1712 935
## [676] 1604 1363 1600 1563 1153 NA 1163 377 1229 1186 1283 1011 1602 NA 1494
## [691] 1362 1438 1092 853 1242 1348 1393 NA 1270 NA 1522 NA NA 1332 1716
## [706] 1649 1663 1794 1629 1563 1553 1564 1595 1600 1579 1384 1441 1494 1423 NA
## [721] 1655 1365 1641 1411 1686 1348 377 1436 1362 1712 NA 1355 NA 1056 1610
## [736] 1666 1011 935 1382 1507 955 1220 1229 1555 NA 1153 1186 853 917 1363
## [751] 1745 1438 NA 1522 1449 1399 NA 1163 1283 1332 NA 1242 1199 NA 980
## [766] NA NA 1270
glimpse(matrixdf)
## chr [1:64, 1:12] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA ...
newdf14 <- data.frame(matrixdf)
#convert matrix into a data frame
newdf14$X6 <- as.integer(newdf14$X6)
newdf14$X7 <- as.integer(newdf14$X7)
newdf14$X8 <- as.integer(newdf14$X8)
newdf14$X9 <- as.integer(newdf14$X9)
newdf14$X10 <- as.integer(newdf14$X10)
newdf14$X11 <- as.integer(newdf14$X11)
newdf14$X12 <- as.integer(newdf14$X12)
#converting the relevant columns of data frame containing players pre ratings into numbers
newdf15 = subset(newdf14, select = -c(1:5) )
glimpse(newdf15)
## Rows: 64
## Columns: 7
## $ X6 <int> 1436, 1175, 1641, 1363, 1242, 1399, 1092, 1384, 1745, 1604, 1423, …
## $ X7 <int> 1563, 917, 955, 1507, 980, 1602, 377, 1441, 1600, 1564, 1153, 1449…
## $ X8 <int> 1600, 1716, 1745, 1553, 1663, 1712, 1666, 1610, 853, 1186, 1686, 1…
## $ X9 <int> 1610, 1629, 1563, 1579, 1666, 1438, 1712, 1411, 1641, 1494, 1649, …
## $ X10 <int> 1649, 1604, 1712, 1655, 1716, 1365, 1794, 1362, 1579, 1686, 1384, …
## $ X11 <int> 1663, 1595, 1666, 1564, 1610, 1552, 1411, 1507, 1649, 1745, 1399, …
## $ X12 <int> 1716, 1649, 1663, 1794, 1629, 1563, 1553, 1564, 1595, 1600, 1579, …
#remove any extra columns that contain no values.
sapply(newdf15, class)
## X6 X7 X8 X9 X10 X11 X12
## "integer" "integer" "integer" "integer" "integer" "integer" "integer"
#check that the relevant columns were converted into integers.
list3 <- c(rowMeans(newdf15, na.rm=T))
averagerounddf <- data.frame(list3)
# calculate the average pre rating for each row (player). Store it in a dataframe.
list4 <- c(rowSums(newdf15, na.rm=T))
#sum the pre ratings for each row (player)
totalpreratingdf <- data.frame(list4)
#put the total pre rating into a dataframe
newdf16 <- cbind(newdf13,averagerounddf,totalpreratingdf)
#combine the data into a single dataframe including the average player pre rating
glimpse(newdf16)
## Rows: 64
## Columns: 14
## $ Player.Score <chr> " 15445895 / R: 1794 >1817 ", " 14598900 / R: 1553…
## $ Player.Number <chr> " 1 ", " 2 ", " 3 ", " 4 ", " 5 ", " 6…
## $ Player.Names <chr> " GARY HUA ", " DAKSHESH DARURI …
## $ Total <chr> "6.0 ", "6.0 ", "6.0 ", "5.5 ", "5.5 ", "5.0 ", "5…
## $ Pre.Scores <chr> "1794", "1553", "1384", "1716", "1655", "1686", "1649", …
## $ Round <chr> "39", "63", "8", "23", "45", "34", "57", "3", "25", "16"…
## $ Round.1 <chr> "21", "58", "61", "28", "37", "29", "46", "32", "18", "1…
## $ Round.2 <chr> "18", "4", "25", "2", "12", "11", "13", "14", "59", "55"…
## $ Round.3 <chr> "14", "17", "21", "26", "13", "35", "11", "9", "8", "31"…
## $ Round.4 <chr> "7", "16", "11", "5", "4", "10", "1", "47", "26", "6", "…
## $ Round.5 <chr> "12", "20", "13", "19", "14", "27", "9", "28", "7", "25"…
## $ Round.6 <chr> "4", "7", "12", "1", "17", "21", "2", "19", "20", "18", …
## $ list3 <dbl> 1605.286, 1469.286, 1563.571, 1573.571, 1500.857, 1518.7…
## $ list4 <dbl> 11237, 10285, 10945, 11015, 10506, 10631, 9605, 10279, 1…
newdf17 <- newdf16 %>%
rename(average_opponent_score = 13, total_pre_rating = 14)
#rename the average pre rating and total pre rating columns
The average pre rating for each player’s opponents was
calculated and stored into a data frame
newdf18 <- newdf17[ -c(1,6:12) ]
#remove the round columns accidentally removed the states
newdf19 <- newdf18[ -c(1,14) ]
#removed the player numbers since it was not required also the total pre ratings were meant to be removed but there was a typo
statedf <- data.frame(newdf11[,1])
#putting the states into a dataframe to be added back
newdf20 <- cbind(newdf19,statedf)
#added states back into main dataframe
newdf21 <- newdf20 |> rename(States = 6)
#rename the states column back into states
newdf21$average_opponent_score <- as.integer(newdf21$average_opponent_score)
#convert the average opponent rating into an integer to match the assignment output "1605"
newdf22 <- newdf21[, c(1, 6, 2, 3, 4)]
#reordering the columns to the order provided in the assignment: Player’s Name, Player’s State, Total Number of Points, Player’s Pre-Rating, and Average Pre Chess Rating of Opponents
newdf22$Pre.Scores <- as.integer(newdf22$Pre.Scores)
#insuring the pre scores are of an integer data type to potentially avoid issues.
finaldf <- newdf22 |> rename("Player’s Name" = 1, "Player’s State" = 2, "Total Number of Points" = 3, "Player’s Pre-Rating" = 4, "Average Pre Chess Rating of Opponents" = 5)
#rename the columns to the same names as provided in the assignment
view(finaldf)
The dataframe was reformatted to match the assignment.
write.csv(finaldf)
## "","Player’s Name","Player’s State","Total Number of Points","Player’s Pre-Rating","Average Pre Chess Rating of Opponents"
## "2"," GARY HUA "," ON ","6.0 ",1794,1605
## "3"," DAKSHESH DARURI "," MI ","6.0 ",1553,1469
## "4"," ADITYA BAJAJ "," MI ","6.0 ",1384,1563
## "5"," PATRICK H SCHILLING "," MI ","5.5 ",1716,1573
## "6"," HANSHI ZUO "," MI ","5.5 ",1655,1500
## "7"," HANSEN SONG "," OH ","5.0 ",1686,1518
## "8"," GARY DEE SWATHELL "," MI ","5.0 ",1649,1372
## "9"," EZEKIEL HOUGHTON "," MI ","5.0 ",1641,1468
## "10"," STEFANO LEE "," ON ","5.0 ",1411,1523
## "11"," ANVIT RAO "," MI ","5.0 ",1365,1554
## "12"," CAMERON WILLIAM MC LEMAN "," MI ","4.5 ",1712,1467
## "13"," KENNETH J TACK "," MI ","4.5 ",1663,1506
## "14"," TORRANCE HENRY JR "," MI ","4.5 ",1666,1497
## "15"," BRADLEY SHAW "," MI ","4.5 ",1610,1515
## "16"," ZACHARY JAMES HOUGHTON "," MI ","4.5 ",1220,1483
## "17"," MIKE NIKITIN "," MI ","4.0 ",1604,1385
## "18"," RONALD GRZEGORCZYK "," MI ","4.0 ",1629,1498
## "19"," DAVID SUNDEEN "," MI ","4.0 ",1600,1480
## "20"," DIPANKAR ROY "," MI ","4.0 ",1564,1426
## "21"," JASON ZHENG "," MI ","4.0 ",1595,1410
## "22"," DINH DANG BUI "," ON ","4.0 ",1563,1470
## "23"," EUGENE L MCCLURE "," MI ","4.0 ",1555,1300
## "24"," ALAN BUI "," ON ","4.0 ",1363,1213
## "25"," MICHAEL R ALDRICH "," MI ","4.0 ",1229,1357
## "26"," LOREN SCHWIEBERT "," MI ","3.5 ",1745,1363
## "27"," MAX ZHU "," ON ","3.5 ",1579,1506
## "28"," GAURAV GIDWANI "," MI ","3.5 ",1552,1221
## "29"," SOFIA ADINA STANESCUBELLU "," MI ","3.5 ",1507,1522
## "30"," CHIEDOZIE OKORIE "," MI ","3.5 ",1602,1313
## "31"," GEORGE AVERY JONES "," ON ","3.5 ",1522,1144
## "32"," RISHI SHETTY "," MI ","3.5 ",1494,1259
## "33"," JOSHUA PHILIP MATHEWS "," ON ","3.5 ",1441,1378
## "34"," JADE GE "," MI ","3.5 ",1449,1276
## "35"," MICHAEL JEFFERY THOMAS "," MI ","3.5 ",1399,1375
## "36"," JOSHUA DAVID LEE "," MI ","3.5 ",1438,1149
## "37"," SIDDHARTH JHA "," MI ","3.5 ",1355,1388
## "38"," AMIYATOSH PWNANANDAM "," MI ","3.5 ",980,1384
## "39"," BRIAN LIU "," MI ","3.0 ",1423,1539
## "40"," JOEL R HENDON "," MI ","3.0 ",1436,1429
## "41"," FOREST ZHANG "," MI ","3.0 ",1348,1390
## "42"," KYLE WILLIAM MURPHY "," MI ","3.0 ",1403,1248
## "43"," JARED GE "," MI ","3.0 ",1332,1149
## "44"," ROBERT GLEN VASEY "," MI ","3.0 ",1283,1106
## "45"," JUSTIN D SCHILLING "," MI ","3.0 ",1199,1327
## "46"," DEREK YAN "," MI ","3.0 ",1242,1152
## "47"," JACOB ALEXANDER LAVALLEY "," MI ","3.0 ",377,1357
## "48"," ERIC WRIGHT "," MI ","2.5 ",1362,1392
## "49"," DANIEL KHAIN "," MI ","2.5 ",1382,1355
## "50"," MICHAEL J MARTIN "," MI ","2.5 ",1291,1285
## "51"," SHIVAM JHA "," MI ","2.5 ",1056,1296
## "52"," TEJAS AYYAGARI "," MI ","2.5 ",1011,1356
## "53"," ETHAN GUO "," MI ","2.5 ",935,1494
## "54"," JOSE C YBARRA "," MI ","2.0 ",1393,1345
## "55"," LARRY HODGE "," MI ","2.0 ",1270,1206
## "56"," ALEX KONG "," MI ","2.0 ",1186,1406
## "57"," MARISA RICCI "," MI ","2.0 ",1153,1414
## "58"," MICHAEL LU "," MI ","2.0 ",1092,1363
## "59"," VIRAJ MOHILE "," MI ","2.0 ",917,1391
## "60"," SEAN M MC CORMICK "," MI ","2.0 ",853,1319
## "61"," JULIA SHEN "," MI ","1.5 ",967,1330
## "62"," JEZZEL FARKAS "," ON ","1.5 ",955,1327
## "63"," ASHWIN BALAJI "," MI ","1.0 ",1530,1186
## "64"," THOMAS JOSEPH HOSMER "," MI ","1.0 ",1175,1350
## "65"," BEN LI "," MI ","1.0 ",1163,1263
#write a csv for the final dataframe.
The data frame successfully contains the assignments
parameters and a csv can be written for upload to a database.