Сценарий, приведенный ниже, go выведет и проанализирует json и вернет кадр данных с именем столбца игрока. Там есть имена, которые я хотел бы изменить, поскольку они не соответствуют другому моему набору данных. Я не уверен, в чем проблема с аргументом case_when ниже. Я прогуглил это, просмотрел множество других попыток и, похоже, не смог получить его до go.
library(jsonlite)
library(tidyverse)
library(dplyr)
# GET Todays date
today <- Sys.Date()-1
#Json return from URL
getlabteamsRaw <- paste0('https://www.fantasylabs.com/api/lines/4/', today, '/startinggoalies')
# Turn Value into List
getlabteams <- fromJSON(getlabteamsRaw)
teams <- c(getlabteams$GoalieMatchups$Properties$HomeTeam, getlabteams$GoalieMatchups$Properties$VisitorTeam)
myfun <- function(x) {
getlabskatersRaw <- paste0('https://www.fantasylabs.com/api/lines/4/', x,'/', today)
getlabskaters <- fromJSON(getlabskatersRaw)
select(getlabskaters$PlayerLines$Properties, FullName, Position, Line, Team, OppTeam, Salary_DK, Salary_FD, ActualPoints_DK, ActualPoints_FD, ImpPts_DK, ImpPts_FD)
}
full_labs_skater_df <- teams %>%
set_names() %>%
map_df(myfun, .id = "team")
# Seperate F and D from Line (1F,1D)
full_labs_skater_df$Line <- gsub('F', '', full_labs_skater_df$Line)
full_labs_skater_df$Line <- gsub('D', '', full_labs_skater_df$Line)
# Create seperate columns from non powerplay, powerplay 1, powerplay 2
full_labs_skater_df$ppline3 <- ifelse(full_labs_skater_df$Line %in% c("1","2","3","4"), 0, '')
full_labs_skater_df$ppline1 <- ifelse(full_labs_skater_df$Line == "PP1", 1, '')
full_labs_skater_df$ppline2 <- ifelse(full_labs_skater_df$Line == "PP2", 2, '')
# Combine all powerplay lines into 1
full_labs_skater_df$PPLine <- paste(full_labs_skater_df$ppline1,full_labs_skater_df$ppline2,full_labs_skater_df$ppline3)
# Drop extra columns
keep_lab_features <- c("FullName","Position","Line","PPLine","Team","OppTeam","Salary_DK","Salary_FD",
"ActualPoints_DK","ActualPoints_FD","ImpPts_DK","ImpPts_FD")
full_labs_skater_df <- full_labs_skater_df[keep_lab_features]
# Create 3 dataframes to filtering by non powerplay players, powerplay players and goalies.
lab_skater_df <- full_labs_skater_df[full_labs_skater_df$Line %in% c("1","2","3","4"),]
powerplay_lab_skater_df <- full_labs_skater_df[full_labs_skater_df$Line %in% c("PP1","PP2"),]
goalie_lab_skater_df <- full_labs_skater_df[full_labs_skater_df$Line %in% c("1G","2G"),]
# Full join the skaters back together by Fullname to get powerplay lines
skater_lab <- full_join(lab_skater_df, powerplay_lab_skater_df,
by = c("FullName"))
keep_lab_skater <- c("FullName","Position.x","Line.x","PPLine.y","Team.x","OppTeam.x","Salary_DK.x","Salary_FD.x",
"ActualPoints_DK.x","ActualPoints_FD.x","ImpPts_DK.x","ImpPts_FD.x")
skater_lab <- skater_lab[keep_lab_skater]
skater_lab[is.na(skater_lab)] <- 0
colnames(skater_lab)[colnames(skater_lab)=="FullName"] <- "player"
colnames(skater_lab)[colnames(skater_lab)=="Position.x"] <- "Position"
colnames(skater_lab)[colnames(skater_lab)=="Line.x"] <- "Line"
colnames(skater_lab)[colnames(skater_lab)=="PPLine.y"] <- "PPLine"
colnames(skater_lab)[colnames(skater_lab)=="Team.x"] <- "Team"
colnames(skater_lab)[colnames(skater_lab)=="OppTeam.x"] <- "OppTeam"
colnames(skater_lab)[colnames(skater_lab)=="Salary_DK.x"] <- "Salary_DK"
colnames(skater_lab)[colnames(skater_lab)=="Salary_FD.x"] <- "Salary_FD"
colnames(skater_lab)[colnames(skater_lab)=="ActualPoints_DK.x"] <- "ActualPoints_DK"
colnames(skater_lab)[colnames(skater_lab)=="ActualPoints_FD.x"] <- "ActualPoints_FD"
colnames(skater_lab)[colnames(skater_lab)=="ImpPts_DK.x"] <- "ImpPts_DK"
colnames(skater_lab)[colnames(skater_lab)=="ImpPts_FD.x"] <- "ImpPts_FD"
skater_lab$player <- gsub(' ', '.', skater_lab$player)
skater_lab$player <- toupper(skater_lab$player)
skater_lab$player <- mutate(
player =
## Specific name changes
case_when(
player == "ANDREI.KASTSITSYN" ~ "ANDREI.KOSTITSYN",
player == "AJ.GREER" ~ "A.J..GREER",
player == "ANDREW.GREENE" ~ "ANDY.GREENE",
player == "ANDREW.WOZNIEWSKI" ~ "ANDY.WOZNIEWSKI",
player == "ANTHONY.DEANGELO" ~ "TONY.DEANGELO",
player == "BATES (JON).BATTAGLIA" ~ "BATES.BATTAGLIA",
player %in% c("BJ.CROMBEEN", "B.J.CROMBEEN", "BRANDON.CROMBEEN") ~ "B.J..CROMBEEN",
player == "BRADLEY.MILLS" ~ "BRAD.MILLS",
player == "CAMERON.BARKER" ~ "CAM.BARKER",
player == "COLIN (JOHN).WHITE" ~ "COLIN.WHITE",
player == "CRISTOVAL.NIEVES" ~ "BOO.NIEVES",
player == "CHRIS.VANDE VELDE" ~ "CHRIS.VANDEVELDE",
player == "DANNY.BRIERE" ~ "DANIEL.BRIERE",
player %in% c("DAN.CLEARY", "DANNY.CLEARY") ~ "DANIEL.CLEARY",
player == "DANIEL.GIRARDI" ~ "DAN.GIRARDI",
player == "DANNY.O'REGAN" ~ "DANIEL.O'REGAN",
TRUE ~ player
)
)
skater_lab$player[[col_name]] <- skater_lab$player