comb <- paste(tourn[5], tourn[6], sep = '')
split_str <- strsplit(comb, "\\|")
df <- matrix(unlist(split_str), ncol = 20, byrow = TRUE)
i <- 8
while (i < length(tourn)) {
comb <- paste(tourn[i], tourn[i+1], sep = '')
split_str <- strsplit(comb, "\\|")
df_temp <- matrix(unlist(split_str), ncol = 20, byrow = TRUE)
df <- rbind(df, df_temp)
i <- i+3
}
df_trimmed <- df[, 1:12]
df_tourn <- matrix(df_trimmed, nrow = 64, ncol = 12, byrow = FALSE)
df_tourn <- as.data.frame(df_tourn)
colnames(df_tourn) <- c("num","name","total_points","game1","game2","game3","game4","game5","game6","game7","state","pre_score_bad_format")
count_games <- function(row) {
game_results <- paste0(row[c('game1', 'game2', 'game3', 'game4', 'game5', 'game6', 'game7')], collapse = "")
matches <- gregexpr("L|D|W", game_results)
num_matches <- sum(lengths(regmatches(game_results, matches)))
return(num_matches)
}
df_tourn$num_games <- apply(df_tourn[, c('game1', 'game2', 'game3', 'game4', 'game5', 'game6', 'game7')], 1, count_games)
df_organized <- df_tourn %>% mutate(pre_score = as.integer(sub(".*R:\\s*(\\d{3,4}).*", "\\1", pre_score_bad_format)))
col_base <- 'game'
i <- 1
df_organized[['num']] <- gsub("[^0-9]", "", df_organized[['num']])
df_temp <- subset(df_organized, select=c('num', 'pre_score'))
while (i<8) {
col_name = paste0(col_base, i)
df_organized[[col_name]] <- gsub("[^0-9]", "", df_organized[[col_name]])
names(df_temp)[1] <- col_name
names(df_temp)[2] <- paste0('pre_score_', col_name)
df_organized <- df_organized %>% left_join(df_temp, by = col_name)
i <- i+1
}
df_organized[is.na(df_organized)] <- 0
df_organized$avg_opponent = round(rowSums(df_organized[, 15:21], na.rm=TRUE)/df_organized$num_games)
df_final <- subset(df_organized, select=c('name', 'state', 'total_points', 'pre_score', 'avg_opponent'))
print(df_final)
## name state total_points pre_score avg_opponent
## 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.csv(df_final, 'tournament_info.csv')