Do not change anything in the following chunk

You will be working on olympic_gymnasts dataset. Do not change the code below:

olympics <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2021/2021-07-27/olympics.csv')

olympic_gymnasts <- olympics %>% 
  filter(!is.na(age)) %>%             # only keep athletes with known age
  filter(sport == "Gymnastics") %>%   # keep only gymnasts
  mutate(
    medalist = case_when(             # add column for success in medaling
      is.na(medal) ~ FALSE,           # NA values go to FALSE
      !is.na(medal) ~ TRUE            # non-NA values (Gold, Silver, Bronze) go to TRUE
    )
  )

More information about the dataset can be found at

https://github.com/rfordatascience/tidytuesday/blob/master/data/2021/2021-07-27/readme.md

Question 1: Create a subset dataset with the following columns only: name, sex, age, team, year and medalist. Call it df.

df<- olympic_gymnasts|>
  select(name, sex, age, team, year, medalist)
df
## # A tibble: 25,528 × 6
##    name                    sex     age team     year medalist
##    <chr>                   <chr> <dbl> <chr>   <dbl> <lgl>   
##  1 Paavo Johannes Aaltonen M        28 Finland  1948 TRUE    
##  2 Paavo Johannes Aaltonen M        28 Finland  1948 TRUE    
##  3 Paavo Johannes Aaltonen M        28 Finland  1948 FALSE   
##  4 Paavo Johannes Aaltonen M        28 Finland  1948 TRUE    
##  5 Paavo Johannes Aaltonen M        28 Finland  1948 FALSE   
##  6 Paavo Johannes Aaltonen M        28 Finland  1948 FALSE   
##  7 Paavo Johannes Aaltonen M        28 Finland  1948 FALSE   
##  8 Paavo Johannes Aaltonen M        28 Finland  1948 TRUE    
##  9 Paavo Johannes Aaltonen M        32 Finland  1952 FALSE   
## 10 Paavo Johannes Aaltonen M        32 Finland  1952 TRUE    
## # ℹ 25,518 more rows

Question 2: From df create df2 that only have year of 2008 2012, and 2016

df2 <- df %>% 
  filter(year %in% c(2008, 2012, 2016))

Question 3 Group by these three years (2008,2012, and 2016) and summarize the mean of the age in each group.

# Filter, group, and calculate the mean age
df_summary <- df %>%
  filter(year %in% c(2008, 2012, 2016)) %>%
  group_by(year) %>%
  summarize(mean_age = mean(age, na.rm = TRUE))

# View the result
print(df_summary)
## # A tibble: 3 × 2
##    year mean_age
##   <dbl>    <dbl>
## 1  2008     21.6
## 2  2012     21.9
## 3  2016     22.2

Question 4 Use olympic_gymnasts dataset, group by year, and find the mean of the age for each year, call this dataset oly_year. (optional after creating the dataset, find the minimum average age)

oly_year <- olympic_gymnasts %>%  group_by(year) %>%  summarize(mean_age = mean(age, na.rm = TRUE))

Question 5 This question is open ended. Create a question that requires you to use at least two verbs. Create a code that answers your question. Then below the chunk, reflect on your question choice and coding procedure

# R Code to answer the question
oly_summary <- olympic_gymnasts %>%
  group_by(year) %>%
  summarize(
    mean_age = mean(age, na.rm = TRUE),
    total_gymnasts = n_distinct(id)
  ) %>%
  arrange(desc(mean_age))

# Print the top 5 years with the highest average age
head(oly_summary, 5)
## # A tibble: 5 × 3
##    year mean_age total_gymnasts
##   <dbl>    <dbl>          <int>
## 1  1948     27.8            173
## 2  1924     27.6             56
## 3  1920     26.7            196
## 4  1936     25.8            175
## 5  1928     25.6            111

#Discussion: Enter your discussion of results here.# # The code uses standard tidyverse functions to transform the data. First, group_by(year) segments the dataset. Second, summarize() creates two new metrics: mean() handles the math for the ages, while n_distinct() safely counts unique competitors without duplicating individuals who entered multiple events. Finally, arrange(desc()) sorts the final output to instantly reveal the years with the highest average age at the very top.#