R/streak_data.R

Defines functions streak_data

Documented in streak_data

streak_data <- function(pid, pbpdata, 
                        eventcode, AB=FALSE){
  # output is data frame
  Flag <- 0
  F1 <- is.numeric(eventcode)
  if(F1 == FALSE){
    F2 <- eventcode %in% c("H", "SO", "HR", "OB")
    if(F2 == FALSE){
    print("Invalid event code")
    Flag <- 1}
  }
  if(F1 == TRUE) ecode <- eventcode
  if(eventcode[1] == "H") ecode <- 20:23
  if(eventcode[1] == "SO") ecode <-  3
  if(eventcode[1] == "HR") ecode <- 23
  if(eventcode[1] == "OB") ecode <- c(14:16, 20:23)

  if(Flag == 0){
     pbpdata <- dplyr::mutate(pbpdata,
                      Date=ymd(str_sub(GAME_ID, 4, 11)),
                      Game=str_sub(GAME_ID, 12, 12))
     dplyr::filter(pbpdata, 
           BAT_ID == pid, 
           BAT_EVENT_FL == TRUE,
           EVENT_CD != 17) %>%
      dplyr::arrange(Date, Game, INN_CT) -> d
     if(AB==TRUE){
       d <- dplyr::filter(d, AB_FL==TRUE)
     }
     d %>% 
       mutate(Outcome = ifelse(EVENT_CD %in% 
                              ecode, 1, 0),
              N = row_number()) %>% 
        select(BAT_ID, N, GAME_ID, INN_CT, Outcome)
  }
}
bayesball/BayesTestStreak documentation built on April 28, 2024, 6:28 a.m.