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 |
# ----------------------------------------------------------
# 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