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))
df2
## # A tibble: 2,703 × 6
## name sex age team year medalist
## <chr> <chr> <dbl> <chr> <dbl> <lgl>
## 1 Nstor Abad Sanjun M 23 Spain 2016 FALSE
## 2 Nstor Abad Sanjun M 23 Spain 2016 FALSE
## 3 Nstor Abad Sanjun M 23 Spain 2016 FALSE
## 4 Nstor Abad Sanjun M 23 Spain 2016 FALSE
## 5 Nstor Abad Sanjun M 23 Spain 2016 FALSE
## 6 Nstor Abad Sanjun M 23 Spain 2016 FALSE
## 7 Katja Abel F 25 Germany 2008 FALSE
## 8 Katja Abel F 25 Germany 2008 FALSE
## 9 Katja Abel F 25 Germany 2008 FALSE
## 10 Katja Abel F 25 Germany 2008 FALSE
## # ℹ 2,693 more rows
Question 3 Group by these three years (2008,2012, and 2016) and summarize the mean of the age in each group.
df3 <- df2 |> group_by(year) |> summarize(mean_age = mean(age, na.rm = TRUE))
df3
## # 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))
oly_year
## # A tibble: 29 × 2
## year mean_age
## <dbl> <dbl>
## 1 1896 24.3
## 2 1900 22.2
## 3 1904 25.1
## 4 1906 24.7
## 5 1908 23.2
## 6 1912 24.2
## 7 1920 26.7
## 8 1924 27.6
## 9 1928 25.6
## 10 1932 23.9
## # ℹ 19 more rows
min(oly_year)
## [1] 19.86606
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
Question 5 Using the dataset olympic_gymnasts, create a new dataframe titled df_city. Include only the city and event played, descending by year.
# Your R code here
df_city <- olympic_gymnasts |> select(city, event, year) |> arrange(desc(year))
df_city
## # A tibble: 25,528 × 3
## city event year
## <chr> <chr> <dbl>
## 1 Rio de Janeiro Gymnastics Men's Individual All-Around 2016
## 2 Rio de Janeiro Gymnastics Men's Floor Exercise 2016
## 3 Rio de Janeiro Gymnastics Men's Parallel Bars 2016
## 4 Rio de Janeiro Gymnastics Men's Horizontal Bar 2016
## 5 Rio de Janeiro Gymnastics Men's Rings 2016
## 6 Rio de Janeiro Gymnastics Men's Pommelled Horse 2016
## 7 Rio de Janeiro Gymnastics Men's Team All-Around 2016
## 8 Rio de Janeiro Gymnastics Men's Floor Exercise 2016
## 9 Rio de Janeiro Gymnastics Men's Horse Vault 2016
## 10 Rio de Janeiro Gymnastics Men's Rings 2016
## # ℹ 25,518 more rows
Discussion: Enter your discussion of results here.
Question 1 Inclusion of different columns into a new dataset using PIPE command + select() command
Question 2 Initial attempts using select() command following initial PIPE command stated that the three dates did not exist. By filtering with %in% and c() functions, the displayed result is seen.
Question 3 Difficulties came when attempting to summarize the mean of each group. Once revisiting Q2 and properly filtering by year, we are able to assign the mean of each year via summarize() function. We are then able to summarize by the mean, excluding any values of NA for a numerical output.
Question 4 Similarly to Q3, we first assign the dataset to a new vector, then we apply the code used for Q3 to fnd the desired result. The optional portion was completed simply by using the applicable function, min(), with the newly created vector.
Question 5 The chosen question asks for specifc data arranged in a particular way. This question was chosen due to the required output being a familiar process that can be done in several ways. The chosen code used the given dataset, olympic_gymnasts, and selected certain columns for review by year in descending order. This process was recognizable, based on past exercises, and utilizes verbs described during lecture to create a quick description of all the events played, where they were held, and the year in which they were held. This could be done to provide an insight into where events have been held in the past, and what kind of events may have been added throughout the years.