Import your data

data <- read_excel("../00_data/myDataOlympics.xlsx")

Chapter 15

Create a factor

data %>% count(medal)
## # A tibble: 4 × 2
##   medal       n
##   <chr>   <int>
## 1 Bronze  13295
## 2 Gold    13372
## 3 NA     231333
## 4 Silver  13116
medal_levels <- c("Bronze", "Silver", "Gold")

data_rev <- data %>%
    mutate(medal = medal %>% factor(levels = medal_levels))

Modify factor order

Make two bar charts here - one before ordering another after

data_summary <- data %>%
  group_by(medal) %>%
  summarise(
    year = mean(year, na.rm = TRUE))

data_summary
## # A tibble: 4 × 2
##   medal   year
##   <chr>  <dbl>
## 1 Bronze 1975.
## 2 Gold   1973.
## 3 NA     1979.
## 4 Silver 1974.
ggplot(data_summary, aes(year, medal)) + geom_point()

ggplot(data_summary, aes(year, fct_reorder(medal, year))) + geom_point()

Modify factor levels

Show examples of three functions:

  • fct_recode
data %>%
    mutate(medal = fct_recode(medal,
                              "third" = "Bronze",
                              "second" = "Silver",
                              "first" = "Gold")) %>%
    count(medal)
## # A tibble: 4 × 2
##   medal       n
##   <fct>   <int>
## 1 third   13295
## 2 first   13372
## 3 NA     231333
## 4 second  13116
  • fct_collapse
data %>%
    mutate(medal = fct_collapse(medal,
                                third = "Bronze",
                                Other = c("Silver", "Gold"))) %>%
    count(medal)
## # A tibble: 3 × 2
##   medal      n
##   <fct>  <int>
## 1 third  13295
## 2 Other  26488
## 3 NA    231333
  • fct_lump
data %>%
    mutate(medal = fct_lump(medal)) %>%
    count(medal)
## # A tibble: 2 × 2
##   medal      n
##   <fct>  <int>
## 1 NA    231333
## 2 Other  39783

Chapter 16

No need to do anything here.