| 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)
# ----------------------------------------------------------
# Create summary table by position
# ----------------------------------------------------------
basketball_players_summary <- 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)) # Sort by Average (descending)
# ----------------------------------------------------------
# Displaying the new summary table
# ----------------------------------------------------------
basketball_players_table <- gt(basketball_players_summary) %>%
tab_header(title = "Player stats by position") %>%
cols_align(align = "left")
basketball_players_table