Import your data

winners <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2023/2023-04-25/winners.csv')
## Rows: 163 Columns: 5
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (3): Category, Athlete, Nationality
## dbl  (1): Year
## time (1): Time
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

Chapter 15

Create a factor

x1 <- c("Men", "Women", "Wheelchair Men", "Wheelchair Women")

athlete_category <- c(
  "Men", "Women", "Wheelchair Men", "Wheelchair Women")

y1 <- factor(x1, levels = athlete_category)
y1
## [1] Men              Women            Wheelchair Men   Wheelchair Women
## Levels: Men Women Wheelchair Men Wheelchair Women

Modify factor order

Make two bar charts here - one before ordering another after

avgtime_category <- winners %>% 
    group_by(Category) %>% 
    summarise(
        avg_time_sec = mean(Time, na.rm = TRUE))

avgtime_category
## # A tibble: 4 × 2
##   Category         avg_time_sec 
##   <chr>            <drtn>       
## 1 Men              7643.767 secs
## 2 Wheelchair Men   6343.000 secs
## 3 Wheelchair Women 7781.564 secs
## 4 Women            8585.167 secs
avgtime_category %>%
    
    ggplot(aes(x=avg_time_sec, y = Category)) +
    geom_point()
## Don't know how to automatically pick scale for object of type <difftime>.
## Defaulting to continuous.

avgtime_category %>%
    
    ggplot(aes(x=avg_time_sec, y = fct_reorder(.f = Category, .x = avg_time_sec))) +
    geom_point()
## Don't know how to automatically pick scale for object of type <difftime>.
## Defaulting to continuous.

Modify factor levels

Show examples of three functions:

  • fct_recode
winners %>%
    mutate(Cat_rev = fct_recode(Category, "Disabled Men" = "Wheelchair Men")) %>%
    select(Category, Cat_rev) %>%
    filter(Category == "Wheelchair Men")
## # A tibble: 39 × 2
##    Category       Cat_rev     
##    <chr>          <fct>       
##  1 Wheelchair Men Disabled Men
##  2 Wheelchair Men Disabled Men
##  3 Wheelchair Men Disabled Men
##  4 Wheelchair Men Disabled Men
##  5 Wheelchair Men Disabled Men
##  6 Wheelchair Men Disabled Men
##  7 Wheelchair Men Disabled Men
##  8 Wheelchair Men Disabled Men
##  9 Wheelchair Men Disabled Men
## 10 Wheelchair Men Disabled Men
## # ℹ 29 more rows
  • fct_collapse
winners %>%
    
    mutate(Cat_col = fct_collapse(Category, "Men" = c("Wheelchair Men", "Men"))) %>%
    select(Category, Cat_col) %>%
    filter(Category != "Women") %>%
    filter(Category != "Wheelchair Women") %>%
    sample_n(10)
## # A tibble: 10 × 2
##    Category       Cat_col
##    <chr>          <fct>  
##  1 Men            Men    
##  2 Men            Men    
##  3 Wheelchair Men Men    
##  4 Men            Men    
##  5 Men            Men    
##  6 Wheelchair Men Men    
##  7 Wheelchair Men Men    
##  8 Men            Men    
##  9 Men            Men    
## 10 Wheelchair Men Men
  • fct_lump
winners %>% count(Category)
## # A tibble: 4 × 2
##   Category             n
##   <chr>            <int>
## 1 Men                 43
## 2 Wheelchair Men      39
## 3 Wheelchair Women    39
## 4 Women               42
winners %>% mutate(Cat_lump = fct_lump(Category, n = 2)) %>% distinct(Cat_lump)
## # A tibble: 3 × 1
##   Cat_lump
##   <fct>   
## 1 Men     
## 2 Women   
## 3 Other

Chapter 16

No need to do anything here.