R/team_stats_per_possesion.R

Defines functions team_stats_per_possesion

Documented in team_stats_per_possesion

#' @title Team stats per possesion
#' @description The function allows the calculation of the statistics per game projected to P possesions.
#' @param df1 Should be a Data Frame that represents the team statistics. This parameter has to be in the format provided by the team_stats() function.
#' @param df2 Should be a Data Frame that represents the rival statistics. This parameter has to be in the format provided by the team_stats() function.
#' @param p Should be a  number. This parameter has to be the number of possessions to which you want to project the statistics.
#' @details The statistical projection is made from the estimation of the possessions that the team plays.
#' @author Fco Javier Cantero \email{fco.cantero@@edu.uah.es}
#' @author Juan José Cuadrado \email{jjcg@@uah.es}
#' @author Universidad de Alcalá de Henares
#' @return Data frame with statistics by game projected to the possessions entered.
#' @examples
#'
#' df1 <- data.frame("G" = c(71), "MP" = c(17090), "FG" = c(3006),
#' "FGA" = c(6269),"Percentage FG" = c(0.48), "3P" = c(782),
#' "3PA" = c(2242), "Percentage 3P" = c(0.349),  "2P" = c(2224),
#' "2PA" = c(4027), "Percentage 2P" = c(0.552), "FT" = c(1260),
#' "FTA FG" = c(1728),  "Percentage FT" = c(0.729), "ORB" = c(757),
#' "DRB" = c(2490),"TRB" = c(3247),"AST" = c(1803),"STL" = c(612),
#' "BLK" = c(468),   "TOV" = c(1077),  "PF" = c(1471),
#' "PTS" = c(8054),  "+/-" = c(0))
#'
#' df2 <- data.frame("G" = c(71), "MP" = c(17090), "FG" = c(2773),
#' "FGA" = c(6187),"Percentage FG" = c(0.448), "3P" = c(827),
#' "3PA" = c(2373), "Percentage 3P" = c(0.349),  "2P" = c(1946),
#' "2PA" = c(3814), "Percentage 2P" = c(0.510), "FT" = c(1270),
#' "FTA FG" = c(1626),  "Percentage FT" = c(0.781), "ORB" = c(668),
#' "DRB" = c(2333),"TRB" = c(3001),  "AST" = c(1662),"STL" = c(585),
#' "BLK" = c(263),   "TOV" = c(1130),  "PF" = c(1544),
#' "PTS" = c(7643),  "+/-" = c(0))
#'
#' p <- 100
#'
#' team_stats_per_possesion(df1,df2,p)
#'
#' @export
#'

team_stats_per_possesion <- function(df1,df2,p){
  tm_poss  <- df1[1,4] - df1[1,15] / (df1[1,15] + df2[1,16]) * (df1[1,4] - df1[1,3]) * 1.07 + df1[1,21] + 0.4 * df1[1,13]
  for(i in 3:ncol(df1)){
    if(i==5 || i==8 || i==11 || i==14){
      df1[i] <- round(df1[i],3)
    }
    else{
      df1[i] <- round((df1[i]/tm_poss) * p,2)
    }
  }
  names(df1) <- c("G","MP","FG","FGA","FG%","3P","3PA","3P%","2P","2PA","2P%","FT","FTA","FT%",
                  "ORB","DRB","TRB","AST","STL","BLK","TOV","PF","PTS","+/-")
  return(df1)
}

Try the AdvancedBasketballStats package in your browser

Any scripts or data that you put into this service are public.

AdvancedBasketballStats documentation built on April 6, 2021, 5:06 p.m.