Tables

Author

Collin Owens

library(dplyr)
Warning: package 'dplyr' was built under R version 4.0.5

Attaching package: 'dplyr'
The following objects are masked from 'package:stats':

    filter, lag
The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union
library(tidyr)
Warning: package 'tidyr' was built under R version 4.0.5
library(reactablefmtr)
Warning: package 'reactablefmtr' was built under R version 4.0.5
Loading required package: reactable

Data reading and conversions

NBAData <- read.csv("D:\\GradSchool\\STA 566\\Data\\player_data.csv")
NBAData$year_start <- as.factor(NBAData$year_start)

NBAData <- NBAData[!(NBAData$name == "George Karl"),]

NBAData <- NBAData %>% separate(height, c('feet', 'inches'), "-", convert = TRUE) %>% mutate(cm = (12*feet + inches)*2.54)
NBAData <- NBAData %>% separate(position, c('Primary', 'Secondary'), "-", convert = TRUE)
Warning: Expected 2 pieces. Missing pieces filled with `NA` in 3366 rows [3, 4,
5, 6, 7, 8, 9, 11, 12, 14, 15, 17, 19, 20, 21, 22, 25, 26, 27, 28, ...].

Data set up

#Overall NBA height
HData <- NBAData %>% group_by(year_start) %>% summarise(mean(cm))
names(HData)[1] <- "YrStart"
names(HData)[2] <- "HeightCM"

#Guard height
GuardPositionData <- NBAData %>% filter(Primary == "G") %>% group_by(year_start) %>% summarise(mean(cm))
names(GuardPositionData)[1] <- "YrStart"
names(GuardPositionData)[2] <- "HeightCM"

#Forward height
ForwardPositionData <- NBAData %>% filter(Primary == "F") %>% group_by(year_start) %>% summarise(mean(cm))
names(ForwardPositionData)[1] <- "YrStart"
names(ForwardPositionData)[2] <- "HeightCM"

#Center height
CenterPositionData <- NBAData %>% filter(Primary == "F") %>% group_by(year_start) %>% summarise(mean(cm))
names(CenterPositionData)[1] <- "YrStart"
names(CenterPositionData)[2] <- "HeightCM"

#Htable <- HData %>% select(YrStart, HeightCM) %>% mutate(Heightplt = NA) %>% as.data.frame()

NBA all player height table average by year

PercentChange <- (HData$HeightCM-lag(HData$HeightCM))/HData$HeightCM*100

HData$HPercentChange <- PercentChange

NBAReactbl <- HData %>% reactable(columns = list(YrStart = colDef(name = "Draft class year"), HeightCM = colDef(name = "Average NBA height in CM", format = colFormat(digits = 1)), HPercentChange = colDef(name = "Height percent change", format = colFormat(digits = 1),cell = data_bars(., 
                                           fill_color = c("pink","lightgreen"),
                                           number_fmt=scales::number_format(accuracy=.1)))))

NBAReactbl

NBA Guard average height data by year

PercentChange <- (GuardPositionData$HeightCM-lag(GuardPositionData$HeightCM))/GuardPositionData$HeightCM*100

GuardPositionData$HPercentChange <- PercentChange

GuardReactbl <- GuardPositionData %>% reactable(columns = list(YrStart = colDef(name = "Draft class year"), HeightCM = colDef(name = "Average Guard height in CM", format = colFormat(digits = 1)), HPercentChange = colDef(name = "Height percent change", format = colFormat(digits = 1),cell = data_bars(., 
                                           fill_color = c("pink","lightgreen"),
                                           number_fmt=scales::number_format(accuracy=.1)))))

GuardReactbl

NBA Forward average height data by year

PercentChange <- (ForwardPositionData$HeightCM-lag(ForwardPositionData$HeightCM))/ForwardPositionData$HeightCM*100

ForwardPositionData$HPercentChange <- PercentChange

ForwardReactbl <- ForwardPositionData %>% reactable(columns = list(YrStart = colDef(name = "Draft class year"), HeightCM = colDef(name = "Average Forward height in CM", format = colFormat(digits = 1)), HPercentChange = colDef(name = "Height percent change", format = colFormat(digits = 1),cell = data_bars(., 
                                           fill_color = c("pink","lightgreen"),
                                           number_fmt=scales::number_format(accuracy=.1)))))

ForwardReactbl

NBA Forward average height data by year

PercentChange <- (CenterPositionData$HeightCM-lag(CenterPositionData$HeightCM))/CenterPositionData$HeightCM*100

CenterPositionData$HPercentChange <- PercentChange

CenterReactbl <- CenterPositionData %>% reactable(columns = list(YrStart = colDef(name = "Draft class year"), HeightCM = colDef(name = "Average Center height in CM", format = colFormat(digits = 1)), HPercentChange = colDef(name = "Height percent change", format = colFormat(digits = 1),cell = data_bars(., 
                                           fill_color = c("pink","lightgreen"),
                                           number_fmt=scales::number_format(accuracy=.1)))))

CenterReactbl