Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Setup
- setwd("C:/Users/Jeff/Desktop/TagPro Analytics")
- library("RJSONIO", lib.loc="~/R/win-library/3.2")
- players <- fromJSON("bulkplayers (1).json")
- matches <- fromJSON("bulkmatches (1).json")
- maps <- fromJSON("bulkmaps (1).json")
- #Creating List of Grouped Matches of 10 Minutes
- players_sample <- NULL
- x <- 1
- for(i in 1:223302){
- if(matches[[i]]$ group == "redacted" && matches[[i]]$ timeLimit == 10){
- players_sample[[x]] <- i
- x <- x + 1
- }
- }
- #Players
- PlayersID <- NULL
- Auth <- NULL
- Name <- NULL
- Flair <- NULL
- Degree <- NULL
- Score <- NULL
- Points <- NULL
- Team <- NULL
- Events <- NULL
- x <- 1
- for(i in players_sample){
- for(n in players[[i]]){
- PlayersID[[x]] <- i
- Auth[[x]] <- n$ auth
- Name[[x]] <- n$ name
- Flair[[x]] <- n$ flair
- Degree[[x]] <- n$ degree
- Score[[x]] <- n$ score
- Points[[x]] <- n$ points
- Team[[x]] <- n$ team
- Events[[x]] <- n$ events
- x <- x + 1
- }
- }
- df_players <- data.frame(PlayersID, Auth, Name, Flair, Degree, Score, Points, Team, stringsAsFactors=FALSE, check.rows=FALSE)
- #Matches
- MatchesID <- NULL
- Port <- NULL
- Group <- NULL
- Date <- NULL
- TimeLimit <- NULL
- Duration <- NULL
- MapID <- NULL
- Team1Name <- NULL
- Team1Score <- NULL
- Team2Name <- NULL
- Team2Score <- NULL
- Result <- NULL
- x <- 1
- for(i in players_sample){
- MatchesID[[x]] <- i
- Port[[x]] <- matches[[i]]$ port
- Group[[x]] <- matches[[i]]$ group
- Date[[x]] <- matches[[i]]$ date
- TimeLimit[[x]] <- matches[[i]]$ timeLimit
- Duration[[x]] <- matches[[i]]$ duration
- MapID[[x]] <- matches[[i]]$ mapId
- Team1Name[[x]] <- matches[[i]]$ teams[[1]]$ name
- Team1Score[[x]] <- matches[[i]]$ teams[[1]]$ score
- Team2Name[[x]] <- matches[[i]]$ teams[[2]]$ name
- Team2Score[[x]] <- matches[[i]]$ teams[[2]]$ score
- if(Team1Score[[x]] > Team2Score[[x]]){
- Result[[x]] <- 1
- } else if(Team1Score[[x]] < Team2Score[[x]]){
- Result[[x]] <- 2
- } else {
- Result[[x]] <- 1.5
- }
- x <- x + 1
- }
- df_matches <- data.frame(MatchesID, Port, Group, Date, TimeLimit, Duration, MapID, Team1Name, Team1Score, Team2Name, Team2Score, Result, stringsAsFactors=FALSE, check.rows=FALSE)
- #Matches -> Players
- Port <- NULL
- Group <- NULL
- Date <- NULL
- TimeLimit <- NULL
- Duration <- NULL
- MapID <- NULL
- Team1Name <- NULL
- Team1Score <- NULL
- Team2Name <- NULL
- Team2Score <- NULL
- Result <- NULL
- for(i in 1:nrow(df_matches)){
- Port[df_players$PlayersID == df_matches$MatchesID[[i]]] <- df_matches$Port[[i]]
- Group[df_players$PlayersID == df_matches$MatchesID[[i]]] <- df_matches$Group[[i]]
- Date[df_players$PlayersID == df_matches$MatchesID[[i]]] <- df_matches$Date[[i]]
- TimeLimit[df_players$PlayersID == df_matches$MatchesID[[i]]] <- df_matches$TimeLimit[[i]]
- Duration[df_players$PlayersID == df_matches$MatchesID[[i]]] <- df_matches$Duration[[i]]
- MapID[df_players$PlayersID == df_matches$MatchesID[[i]]] <- df_matches$MapID[[i]]
- Team1Name[df_players$PlayersID == df_matches$MatchesID[[i]]] <- df_matches$Team1Name[[i]]
- Team1Score[df_players$PlayersID == df_matches$MatchesID[[i]]] <- df_matches$Team1Score[[i]]
- Team2Name[df_players$PlayersID == df_matches$MatchesID[[i]]] <- df_matches$Team2Name[[i]]
- Team2Score[df_players$PlayersID == df_matches$MatchesID[[i]]] <- df_matches$Team2Score[[i]]
- Result[df_players$PlayersID == df_matches$MatchesID[[i]]] <- df_matches$Result[[i]]
- }
- df_players <- cbind(df_players, Port)
- df_players <- cbind(df_players, Group)
- df_players <- cbind(df_players, Date)
- df_players <- cbind(df_players, TimeLimit)
- df_players <- cbind(df_players, Duration)
- df_players <- cbind(df_players, MapID)
- df_players <- cbind(df_players, Team1Name)
- df_players <- cbind(df_players, Team1Score)
- df_players <- cbind(df_players, Team2Name)
- df_players <- cbind(df_players, Team2Score)
- df_players <- cbind(df_players, Result)
- #Maps
- ID <- NULL
- Name <- NULL
- Author <- NULL
- MarsBalls <- NULL
- Width <- NULL
- Tiles <- NULL
- for(i in 1:1145){
- ID[[i]] <- i
- Name[[i]] <- maps[[i]]$ name
- Author[[i]] <- maps[[i]]$ author
- MarsBalls[[i]] <- maps[[i]]$ marsballs
- Width[[i]] <- maps[[i]]$ width
- Tiles[[i]] <- maps[[i]]$ tiles
- }
- df_maps <- data.frame(ID, Name, Author, MarsBalls, Width, Tiles, stringsAsFactors=FALSE, check.rows=FALSE)
- #Wins
- for(i in 1:nrow(df_players)){
- if(df_players$Team[[i]] == df_players$Winner[[i]]) {
- Result[i] <- "Win"
- } else if(df_players$Winner[[i]] == 1.5) {
- Result[i] <- "Tie"
- } else if(df_players$Team[[i]] == 0) {
- Result[i] <- "None"
- } else {
- Result[i] <- "Loss"
- }
- }
- df_players <- cbind(df_players, Result)
- #Degree
- df_degrees <- data.frame(unique(df_players$Degree, stringsAsFactors=FALSE, check.rows=FALSE))
- names(df_degrees)[1] <- "Degree"
- Wins <- NULL
- Losses <- NULL
- Ties <- NULL
- LateJoin <- NULL
- Games <- NULL
- WinPerc <- NULL
- WinPercMod <- NULL
- for(i in 1:nrow(df_degrees)){
- Wins[[i]] <- length(which(df_players$Degree == df_degrees$Degree[[i]] & df_players$Result == "Win"))
- Losses[[i]] <- length(which(df_players$Degree == df_degrees$Degree[[i]] & df_players$Result == "Loss"))
- Ties[[i]] <- length(which(df_players$Degree == df_degrees$Degree[[i]] & df_players$Result == "Tie"))
- LateJoin[[i]] <- length(which(df_players$Degree == df_degrees$Degree[[i]] & df_players$Result == "None"))
- Games[[i]] <- Wins[[i]] + Losses[[i]] + Ties[[i]]
- WinPerc[[i]] <- Wins[[i]] / Games[[i]]
- WinPercMod[[i]] <- (Wins[[i]] + 0.5*Ties[[i]])/ Games[[i]]
- }
- df_degrees <- cbind(df_degrees, Games)
- df_degrees <- cbind(df_degrees, Wins)
- df_degrees <- cbind(df_degrees, Losses)
- df_degrees <- cbind(df_degrees, Ties)
- df_degrees <- cbind(df_degrees, LateJoin)
- df_degrees <- cbind(df_degrees, WinPerc)
- df_degrees <- cbind(df_degrees, WinPercMod)
- #Plot: Degrees vs. Win Percentage
- plot(df_degrees$Degree[df_degrees$Degree < 150 & df_degrees$Degree > 20], df_degrees$WinPercMod[df_degrees$Degree < 150 & df_degrees$Degree > 20])
- title(main = "Win Percentage vs. Degrees")
- abline(lm(df_degrees$WinPercMod[df_degrees$Degree < 150 & df_degrees$Degree > 20]~df_degrees$Degree[df_degrees$Degree < 150 & df_degrees$Degree > 20]))
- #Bar Plot
- for(i in 1:20){
- for(n in 1:10){
- WinPercMod[[n]] <- df_degrees$WinPercMod[[((i-1)*10)+n]]
- WinPercMean[[i]] <- mean(WinPercMod)
- }
- }
- barplot(WinPercMean)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement