library(tidyverse)
library(kableExtra)My approach for this project follow:
Note: Inspiration and code for shiny app come from https://www.youtube.com/watch?v=HPZSunrSo5M
columns <- c("player","c2","c3","c4","c5","c6","c7","c8","c9","c10")
delo <- read_fwf("https://raw.githubusercontent.com/MundyMSDS/DATA607/master/elodataset.txt", fwf_widths(c(6, 32, 7,7,6,6,6,6,6,6), columns),skip=4, comment="-")
glimpse(delo)## Observations: 128
## Variables: 10
## $ player <chr> "1", "ON", "2", "MI", "3", "MI", "4", "MI", "5", "MI", ...
## $ c2 <chr> "| GARY HUA", "| 15445895 / R: 1794 ->1817", "| DAKSH...
## $ c3 <chr> "|6.0", "|N:2", "|6.0", "|N:2", "|6.0", "|N:2", "|5.5",...
## $ c4 <chr> "|W 39", "|W", "|W 63", "|B", "|L 8", "|W", "|W 23...
## $ c5 <chr> "|W 21", "|B", "|W 58", "|W", "|W 61", "|B", "|D 28...
## $ c6 <chr> "|W 18", "|W", "|L 4", "|B", "|W 25", "|W", "|W 2...
## $ c7 <chr> "|W 14", "|B", "|W 17", "|W", "|W 21", "|B", "|W 26...
## $ c8 <chr> "|W 7", "|W", "|W 16", "|B", "|W 11", "|W", "|D 5...
## $ c9 <chr> "|D 12", "|B", "|W 20", "|W", "|W 13", "|B", "|W 19...
## $ c10 <chr> "|D 4", "|W", "|W 7", "|B", "|W 12", "|W", "|D 1...
d <- delo %>%
mutate(c2= str_trim(str_sub(c2,2,29),side="both")) %>%
mutate(c3 = str_trim(str_sub(c3,2,6),side="both")) %>%
mutate(c4 = str_trim(str_sub(c4,2,6),side="both")) %>%
mutate(c5 = str_trim(str_sub(c5,2,6),side="both")) %>%
mutate(c6 = str_trim(str_sub(c6,2,6),side="both")) %>%
mutate(c7 = str_trim(str_sub(c7,2,6),side="both")) %>%
mutate(c8 = str_trim(str_sub(c8,2,6),side="both")) %>%
mutate(c9 = str_trim(str_sub(c9,2,6),side="both")) %>%
mutate(c10 = str_trim(str_sub(c10,2,6),side="both")) %>%
mutate(c11 = if_else(str_detect(player,"\\d"),lead(player),"")) %>%
mutate(c12 = if_else(str_detect(player,"\\d"),lead(c2),"")) %>%
filter(str_detect(player,"\\d")) %>%
mutate(c4=as.integer(str_replace_all(c4,"[WLDHU]\\s",""))) %>%
mutate(c5=as.integer(str_replace_all(c5,"[WLDHU]\\s",""))) %>%
mutate(c6=as.integer(str_replace_all(c6,"[WLDHU]\\s",""))) %>%
mutate(c7=as.integer(str_replace_all(c7,"[WLDHU]\\s",""))) %>%
mutate(c8=as.integer(str_replace_all(c8,"[WLDHU]\\s",""))) %>%
mutate(c9=as.integer(str_replace_all(c9,"[WLDHU]\\s",""))) %>%
mutate(c10=as.integer(str_replace_all(c10,"[WLDHU]\\s",""))) %>%
mutate(c12 = str_replace_all(c12,"\\d{8}\\s\\/\\sR\\:\\s","")) %>%
separate(c12, into=c("c13", "c14"), sep = "->", remove = FALSE) %>%
mutate(c13 = str_extract(c13,"\\d{3,4}"))
d2 <- d %>%
select(c2,c11,c3, c13,c4:c10) %>%
gather(c4:c10, key="match", value="player") %>%
arrange(c2) %>%
mutate(player = as.character(player)) %>%
select(-match)
d3 <- d %>%
select (player, c13)
result <- left_join(d2, d3, by ="player") %>%
group_by(c2, c11,c3, c13.x) %>%
summarize(score = mean(as.integer(c13.y), na.rm = TRUE)) %>%
ungroup() %>%
mutate(score = as.integer(score)) %>%
rename(Name=c2, State=c11, Ttl_Points =c3, Pre_Rating = c13.x, Avg_Opp_Rating = score) %>%
arrange(desc(Avg_Opp_Rating)) kable(result, format = "markdown")| Name | State | Ttl_Points | Pre_Rating | Avg_Opp_Rating |
|---|---|---|---|---|
| GARY HUA | ON | 6.0 | 1794 | 1605 |
| PATRICK H SCHILLING | MI | 5.5 | 1716 | 1573 |
| ADITYA BAJAJ | MI | 6.0 | 1384 | 1563 |
| ANVIT RAO | MI | 5.0 | 1365 | 1554 |
| BRIAN LIU | MI | 3.0 | 1423 | 1539 |
| STEFANO LEE | ON | 5.0 | 1411 | 1523 |
| SOFIA ADINA STANESCU-BELLU | MI | 3.5 | 1507 | 1522 |
| HANSEN SONG | OH | 5.0 | 1686 | 1518 |
| BRADLEY SHAW | MI | 4.5 | 1610 | 1515 |
| KENNETH J TACK | MI | 4.5 | 1663 | 1506 |
| MAX ZHU | ON | 3.5 | 1579 | 1506 |
| HANSHI ZUO | MI | 5.5 | 1655 | 1500 |
| RONALD GRZEGORCZYK | MI | 4.0 | 1629 | 1498 |
| TORRANCE HENRY JR | MI | 4.5 | 1666 | 1497 |
| ETHAN GUO | MI | 2.5 | 935 | 1494 |
| ZACHARY JAMES HOUGHTON | MI | 4.5 | 1220 | 1483 |
| DAVID SUNDEEN | MI | 4.0 | 1600 | 1480 |
| DINH DANG BUI | ON | 4.0 | 1563 | 1470 |
| DAKSHESH DARURI | MI | 6.0 | 1553 | 1469 |
| EZEKIEL HOUGHTON | MI | 5.0 | 1641 | 1468 |
| CAMERON WILLIAM MC LEMAN | MI | 4.5 | 1712 | 1467 |
| JOEL R HENDON | MI | 3.0 | 1436 | 1429 |
| DIPANKAR ROY | MI | 4.0 | 1564 | 1426 |
| MARISA RICCI | MI | 2.0 | 1153 | 1414 |
| JASON ZHENG | MI | 4.0 | 1595 | 1410 |
| ALEX KONG | MI | 2.0 | 1186 | 1406 |
| ERIC WRIGHT | MI | 2.5 | 1362 | 1392 |
| VIRAJ MOHILE | MI | 2.0 | 917 | 1391 |
| FOREST ZHANG | MI | 3.0 | 1348 | 1390 |
| SIDDHARTH JHA | MI | 3.5 | 1355 | 1388 |
| MIKE NIKITIN | MI | 4.0 | 1604 | 1385 |
| AMIYATOSH PWNANANDAM | MI | 3.5 | 980 | 1384 |
| JOSHUA PHILIP MATHEWS | ON | 3.5 | 1441 | 1378 |
| MICHAEL JEFFERY THOMAS | MI | 3.5 | 1399 | 1375 |
| GARY DEE SWATHELL | MI | 5.0 | 1649 | 1372 |
| LOREN SCHWIEBERT | MI | 3.5 | 1745 | 1363 |
| MICHAEL LU | MI | 2.0 | 1092 | 1363 |
| JACOB ALEXANDER LAVALLEY | MI | 3.0 | 377 | 1357 |
| MICHAEL R ALDRICH | MI | 4.0 | 1229 | 1357 |
| TEJAS AYYAGARI | MI | 2.5 | 1011 | 1356 |
| DANIEL KHAIN | MI | 2.5 | 1382 | 1355 |
| THOMAS JOSEPH HOSMER | MI | 1.0 | 1175 | 1350 |
| JOSE C YBARRA | MI | 2.0 | 1393 | 1345 |
| JULIA SHEN | MI | 1.5 | 967 | 1330 |
| JEZZEL FARKAS | ON | 1.5 | 955 | 1327 |
| JUSTIN D SCHILLING | MI | 3.0 | 1199 | 1327 |
| SEAN M MC CORMICK | MI | 2.0 | 853 | 1319 |
| CHIEDOZIE OKORIE | MI | 3.5 | 1602 | 1313 |
| EUGENE L MCCLURE | MI | 4.0 | 1555 | 1300 |
| SHIVAM JHA | MI | 2.5 | 1056 | 1296 |
| MICHAEL J MARTIN | MI | 2.5 | 1291 | 1285 |
| JADE GE | MI | 3.5 | 1449 | 1276 |
| BEN LI | MI | 1.0 | 1163 | 1263 |
| RISHI SHETTY | MI | 3.5 | 1494 | 1259 |
| KYLE WILLIAM MURPHY | MI | 3.0 | 1403 | 1248 |
| GAURAV GIDWANI | MI | 3.5 | 1552 | 1221 |
| ALAN BUI | ON | 4.0 | 1363 | 1213 |
| LARRY HODGE | MI | 2.0 | 1270 | 1206 |
| ASHWIN BALAJI | MI | 1.0 | 1530 | 1186 |
| DEREK YAN | MI | 3.0 | 1242 | 1152 |
| JARED GE | MI | 3.0 | 1332 | 1149 |
| JOSHUA DAVID LEE | MI | 3.5 | 1438 | 1149 |
| GEORGE AVERY JONES | ON | 3.5 | 1522 | 1144 |
| ROBERT GLEN VASEY | MI | 3.0 | 1283 | 1106 |
result <- format_csv(result)
setwd(file.path("C:","Users", "mutue", "OneDrive", "Documents", "Data607"))
write_file(result,"elo_data.csv")Click this link to access the Shiny App. Use the App to access your ELO CSV file or other csv file.
Link to App: https://mundymsds.shinyapps.io/EloApp/