Lab 4: Basketball Player Stats by Position

This table shows the stats of the basketball team data, categorized by their position.

Player stats by position
Position Count Minimum Average Maximum
Forward 4 50.9 54.2 59.1
Guard 4 46.6 52.9 58.0
Center 4 40.8 50.8 59.9

Code:

# ----------------------------------------------------------
# Installing required packages
# ----------------------------------------------------------

if (!require("tidyverse"))
  install.packages("tidyverse")
if (!require("gt"))
  install.packages("gt")

library(tidyverse)
library(gt)

# ----------------------------------------------------------
# Specify made-up data for 12 players
# and turn it into a data frame
# Note: I used ChatGPT to help generate this data
# ----------------------------------------------------------

Player <- c(
  "Player 1",
  "Player 2",
  "Player 3",
  "Player 4",
  "Player 5",
  "Player 6",
  "Player 7",
  "Player 8",
  "Player 9",
  "Player 10",
  "Player 11",
  "Player 12"
)

Position <- c(
  "Guard",
  "Center",
  "Center",
  "Guard",
  "Forward",
  "Center",
  "Forward",
  "Guard",
  "Center",
  "Forward",
  "Guard",
  "Forward"
)

FG_Percentage <- c(58.0,
                   44.9,
                   40.8,
                   46.6,
                   59.1,
                   57.8,
                   53.9,
                   52.8,
                   59.9,
                   53.1,
                   54.2,
                   50.9)

basketball_players <- data.frame(Player, Position, FG_Percentage)
# ----------------------------------------------------------
# Grouping and summarizing
# ----------------------------------------------------------

summary_table <- basketball_players %>%
  group_by(Position) %>%
  summarise(
    Count   = n(),
    Minimum = round(min(FG_Percentage), 1),
    Average = round(mean(FG_Percentage), 1),
    Maximum = round(max(FG_Percentage), 1)
  ) %>%
  arrange(desc(Average))

# ----------------------------------------------------------
# Displaying the table
# ----------------------------------------------------------

summary_table_gt <- summary_table %>%
  gt() %>%
  tab_header(title = "Player stats by position") %>%
  cols_align(align = "left")

summary_table_gt