Anthony Edwards becomes slightly more aggressive in the playoffs while staying consistent with regular season tendencies.
Karl-Anthony Towns appears to struggle when creating his own shot around the basket as his pct blocked jumps by 8 pct points and accuracy dips 13 pct points, his second chance at rim accuracy drops by 16 pct points and the pct of his 2s assisted on increases by 10 pct points. So I believe it is more his effectiveness than his aggression that drops in the playoffs.
Towns Regular season to playoffs stat changes:
library(tidyverse)
library(jsonlite)
library(janitor)
library(dplyr)
library(reactable)
library(reactablefmtr)
library(gt)
pbp_url <- "https://api.pbpstats.com/get-totals/nba?Season=2021-22&SeasonType=Regular%2BSeason&TeamId=1610612750&Type=Player"
pbp_wolves_22_reg <- read_json(pbp_url)
wolves_22_reg <- pbp_wolves_22_reg[["multi_row_table_data"]] %>%
bind_rows() %>%
clean_names()
wolves_reg_tend <- wolves_22_reg %>%
select(name,
minutes,
usage,
corner3frequency,
arc3frequency,
at_rim_frequency,
at_rim_fg3a_frequency,
shot_quality_avg,
shooting_fouls_drawn_pct,
live_ball_turnover_pct,
assisted2s_pct,
assisted3s_pct)
pbp_url_2 <- "https://api.pbpstats.com/get-totals/nba?Season=2021-22&SeasonType=PlayIn&TeamId=1610612750&Type=Player"
pbp_wolves_22_pi <- read_json(pbp_url_2)
wolves_22_pi <- pbp_wolves_22_pi[["multi_row_table_data"]] %>%
bind_rows() %>%
clean_names()
wolves_pi_tend <- wolves_22_pi %>%
select(name,
minutes,
usage,
corner3frequency,
arc3frequency,
at_rim_frequency,
at_rim_fg3a_frequency,
shot_quality_avg,
shooting_fouls_drawn_pct,
live_ball_turnover_pct,
assisted2s_pct,
assisted3s_pct) %>%
mutate(usage_pi = usage,
minutes_pi = minutes,
corner3frequency_pi = corner3frequency,
arc3frequency_pi = arc3frequency,
at_rim_frequency_pi = at_rim_frequency ,
at_rim_fg3a_frequency_pi = at_rim_fg3a_frequency,
shot_quality_avg_pi = shot_quality_avg,
shooting_fouls_drawn_pct_pi = shooting_fouls_drawn_pct,
live_ball_turnover_pct_pi = live_ball_turnover_pct,
assisted2s_pct_pi = assisted2s_pct,
assisted3s_pct_pi = assisted3s_pct,
live_ball_turnover_pct_pi = live_ball_turnover_pct) %>%
select(name,
minutes_pi,
usage_pi,
corner3frequency_pi,
arc3frequency_pi,
at_rim_frequency_pi,
at_rim_fg3a_frequency_pi,
shot_quality_avg_pi,
shooting_fouls_drawn_pct_pi,
live_ball_turnover_pct_pi,
assisted2s_pct_pi,
assisted3s_pct_pi,
live_ball_turnover_pct_pi) %>%
replace( is.na(.),0)
pbp_url_3 <- "https://api.pbpstats.com/get-totals/nba?Season=2021-22&SeasonType=Playoffs&TeamId=1610612750&Type=Player"
pbp_wolves_22_p0 <- read_json(pbp_url_3)
wolves_22_p0 <- pbp_wolves_22_p0[["multi_row_table_data"]] %>%
bind_rows() %>%
clean_names()
wolves_po_tend <- wolves_22_p0 %>%
select(name,
minutes,
usage,
corner3frequency,
arc3frequency,
at_rim_frequency,
at_rim_fg3a_frequency,
shot_quality_avg,
shooting_fouls_drawn_pct,
live_ball_turnover_pct,
assisted2s_pct,
assisted3s_pct) %>%
mutate(usage_po = usage,
minutes_po = minutes,
corner3frequency_po = corner3frequency,
arc3frequency_po = arc3frequency,
at_rim_frequency_po = at_rim_frequency ,
at_rim_fg3a_frequency_po = at_rim_fg3a_frequency,
shot_quality_avg_po = shot_quality_avg,
shooting_fouls_drawn_pct_po = shooting_fouls_drawn_pct,
live_ball_turnover_pct_po = live_ball_turnover_pct,
assisted2s_pct_po = assisted2s_pct,
assisted3s_pct_po = assisted3s_pct,
live_ball_turnover_pct_po = live_ball_turnover_pct) %>%
select(name,
minutes_po,
usage_po,
corner3frequency_po,
arc3frequency_po,
at_rim_frequency_po,
at_rim_fg3a_frequency_po,
shot_quality_avg_po,
shooting_fouls_drawn_pct_po,
live_ball_turnover_pct_po,
assisted2s_pct_po,
assisted3s_pct_po,
live_ball_turnover_pct_po) %>%
replace( is.na(.),0)
wolves_post_tend <- right_join(wolves_po_tend, wolves_pi_tend) %>%
mutate(usage_post = (usage_po + usage_pi)/2,
minutes_post = minutes_po + minutes_pi,
corner3frequency_post = (corner3frequency_po + corner3frequency_pi)/2,
arc3frequency_post = (arc3frequency_po + arc3frequency_pi)/2,
at_rim_frequency_post = (at_rim_frequency_po + at_rim_frequency_pi)/2,
at_rim_fg3a_frequency_post = (at_rim_fg3a_frequency_po + at_rim_fg3a_frequency_pi)/2,
shot_quality_avg_post = (shot_quality_avg_po + shot_quality_avg_pi)/2,
shooting_fouls_drawn_pct_post = (shooting_fouls_drawn_pct_po + shooting_fouls_drawn_pct_pi)/2,
live_ball_turnover_pct_post = (live_ball_turnover_pct_po + live_ball_turnover_pct_pi)/2,
assisted2s_pct_post = (assisted2s_pct_po + assisted2s_pct_pi)/2,
assisted3s_pct_post = (assisted3s_pct_po + assisted3s_pct_pi)/2,
live_ball_turnover_pct_post = (live_ball_turnover_pct_po + live_ball_turnover_pct_pi)/2) %>%
select(name,
minutes_post,
usage_post,
shot_quality_avg_post,
at_rim_fg3a_frequency_post,
at_rim_frequency_post,
assisted2s_pct_post,
assisted3s_pct_post,
arc3frequency_post,
corner3frequency_post,
live_ball_turnover_pct_post,
shooting_fouls_drawn_pct_post)
right_join(wolves_post_tend, wolves_reg_tend) %>%
mutate( usage_diff = usage_post - usage,
shot_quality_avg_diff = shot_quality_avg_post - shot_quality_avg,
at_rim_fg3a_frequency_diff = at_rim_fg3a_frequency_post - at_rim_fg3a_frequency,
at_rim_frequency_diff = at_rim_frequency_post - at_rim_frequency,
assisted2s_pct_diff = assisted2s_pct_post - assisted2s_pct,
assisted3s_pct_diff = assisted3s_pct_post - assisted3s_pct,
arc3frequency_diff = arc3frequency_post - arc3frequency,
corner3frequency_diff = corner3frequency_post - corner3frequency,
live_ball_turnover_pct_diff = live_ball_turnover_pct_post - live_ball_turnover_pct,
shooting_fouls_drawn_pct_diff = shooting_fouls_drawn_pct_post - shooting_fouls_drawn_pct) %>%
mutate_at(vars(usage_diff,
shot_quality_avg_diff,
at_rim_fg3a_frequency_diff,
at_rim_frequency_diff,
assisted2s_pct_diff,
assisted3s_pct_diff,
arc3frequency_diff,
corner3frequency_diff,
live_ball_turnover_pct_diff,
shooting_fouls_drawn_pct_diff), funs(round(.,4))) %>%
mutate('usage diff' = usage_diff,
'minutes post' = minutes_post,
'shot quality avg diff' = shot_quality_avg_diff,
'at rim/3fga frequency diff' = at_rim_fg3a_frequency_diff,
'at rim frequency diff' = at_rim_frequency_diff,
'assisted 2s pct diff' = assisted2s_pct_diff,
'assisted 3s pct diff' = assisted3s_pct_diff,
'arc 3 frequency diff' = arc3frequency_diff,
'corner 3 frequency diff' = corner3frequency_diff,
'live ball TO pct diff' = live_ball_turnover_pct_diff,
'shooting fouls drawn pct diff' = shooting_fouls_drawn_pct_diff) %>%
select(name,
minutes,
'minutes post',
'usage diff',
'shot quality avg diff',
'at rim/3fga frequency diff',
'at rim frequency diff',
'assisted 2s pct diff',
'assisted 3s pct diff',
'arc 3 frequency diff',
'corner 3 frequency diff',
'live ball TO pct diff',
'shooting fouls drawn pct diff') %>%
reactable( theme = espn())
pbp_url_t <- "https://api.pbpstats.com/get-all-season-stats/nba?EntityType=Player&EntityId=1626157"
pbp_towns <- read_json(pbp_url_t)
towns <- pbp_towns[["career_totals"]] %>%
bind_rows() %>%
clean_names()
season_type <- c("Playoffs", "Regular Season", "Playin")
cbind(towns, season_type) %>%
filter( minutes > 30) %>%
reactable()