Import your data

fires <- read_xlsx("myData.xlsx")

Chapter 15

Create a factor

Modify factor order

Make two bar charts here - one before ordering another after

Unordered factor levels

fires_by_severity <- fires %>%
    
    group_by(SEVERITY) %>%
    summarise(
        avg_acres_burned = mean(ACRES_BURNED, na.rm = TRUE)
    )

fires_by_severity
## # A tibble: 3 × 2
##   SEVERITY avg_acres_burned
##   <chr>               <dbl>
## 1 Mild              113379.
## 2 Moderate          199446.
## 3 Severe            513208.
# Plot
fires_by_severity %>%
    
    ggplot(aes(x = avg_acres_burned, y = SEVERITY)) +
    geom_point()

Ordered factors

fires_by_severity %>%
    
    ggplot(aes(x = avg_acres_burned, y = fct_reorder(.f = SEVERITY, .x = avg_acres_burned))) +
    geom_point() +
    # Labeling
    labs(y = NULL, x = "Average Acres Burned Per Fire")

Modify factor levels

Show examples of three functions:

  • fct_recode
# Recode
fires %>%
    
    # Rename levels
    mutate(Severity.new = fct_recode(SEVERITY, "Bad" = "Severe")) %>%
    select(SEVERITY, Severity.new) %>%
    filter(SEVERITY == "Severe")
## # A tibble: 9 × 2
##   SEVERITY Severity.new
##   <chr>    <fct>       
## 1 Severe   Bad         
## 2 Severe   Bad         
## 3 Severe   Bad         
## 4 Severe   Bad         
## 5 Severe   Bad         
## 6 Severe   Bad         
## 7 Severe   Bad         
## 8 Severe   Bad         
## 9 Severe   Bad
  • fct_collapse
fires %>%
    
    mutate(Severity_col = fct_collapse(SEVERITY, "Dangerous" = c("Severe", "Moderate"))) %>%
    select(SEVERITY, Severity_col) %>%
    filter(SEVERITY != "Mild")
## # A tibble: 43 × 2
##    SEVERITY Severity_col
##    <chr>    <fct>       
##  1 Moderate Dangerous   
##  2 Severe   Dangerous   
##  3 Moderate Dangerous   
##  4 Severe   Dangerous   
##  5 Moderate Dangerous   
##  6 Severe   Dangerous   
##  7 Moderate Dangerous   
##  8 Moderate Dangerous   
##  9 Moderate Dangerous   
## 10 Severe   Dangerous   
## # ℹ 33 more rows
  • fct_lump
fires %>% count(SEVERITY)
## # A tibble: 3 × 2
##   SEVERITY     n
##   <chr>    <int>
## 1 Mild        40
## 2 Moderate    34
## 3 Severe       9
fires %>% mutate(Severity_lump = fct_lump(SEVERITY)) %>% distinct(Severity_lump)
## # A tibble: 3 × 1
##   Severity_lump
##   <fct>        
## 1 Moderate     
## 2 Other        
## 3 Mild

Chapter 16

No need to do anything here.