data <- read_excel("../00_data/myData.xlsx")
region_levels <- c(
"PW", "NE", "IM", "SE", "NT", "NC",
"MW", "AK"
)
region_levels
## [1] "PW" "NE" "IM" "SE" "NT" "NC" "MW" "AK"
# Transform data calculate average visitors by region
visitors_by_region <- data %>%
group_by(region) %>%
summarise(
avg_visitors = mean(visitors, na.rm = TRUE)
)
# plot
visitors_by_region %>%
ggplot(aes(x = avg_visitors, y = region)) +
geom_point()
visitors_by_region %>%
ggplot(aes(x = avg_visitors, y = fct_reorder(.f = region, .x = avg_visitors))) +
geom_point() +
# Labeling
labs(y = NULL, x = "Mean Number of National Park Visitors")
Show examples of three functions:
visitors_by_region %>%
ggplot(aes(x = avg_visitors,
y = fct_reorder(.f = region, .x = avg_visitors) %>%
fct_relevel("NT"))) +
geom_point() +
# Labeling
labs(y = NULL, x = "Mean Number of National Park Visitors")
data %>% distinct(region)
## # A tibble: 8 × 1
## region
## <chr>
## 1 PW
## 2 NE
## 3 IM
## 4 SE
## 5 NT
## 6 NC
## 7 MW
## 8 AK
# Recode
data %>%
# Rename levels
mutate(region_rev = fct_recode(region, "Northeast" = "NE")) %>%
select(region, region_rev) %>%
filter(region == "NE")
## # A tibble: 3,710 × 2
## region region_rev
## <chr> <fct>
## 1 NE Northeast
## 2 NE Northeast
## 3 NE Northeast
## 4 NE Northeast
## 5 NE Northeast
## 6 NE Northeast
## 7 NE Northeast
## 8 NE Northeast
## 9 NE Northeast
## 10 NE Northeast
## # … with 3,700 more rows
# Collapse multiple levels into one
data %>%
mutate(region_col = fct_collapse (region, "Eastern" = c("NE", "SE"))) %>%
select(region, region_col) %>%
filter(region != "PW")
## # A tibble: 18,309 × 2
## region region_col
## <chr> <fct>
## 1 NE Eastern
## 2 IM IM
## 3 NE Eastern
## 4 IM IM
## 5 SE Eastern
## 6 SE Eastern
## 7 NT NT
## 8 NE Eastern
## 9 SE Eastern
## 10 SE Eastern
## # … with 18,299 more rows
# Lump small levels into other levels
data %>% count(region)
## # A tibble: 8 × 2
## region n
## <chr> <int>
## 1 AK 1040
## 2 IM 5765
## 3 MW 2635
## 4 NC 1579
## 5 NE 3710
## 6 NT 77
## 7 PW 3251
## 8 SE 3503
data %>% mutate(region_lump = fct_lump(region)) %>% distinct(region_lump)
## # A tibble: 7 × 1
## region_lump
## <fct>
## 1 PW
## 2 NE
## 3 IM
## 4 SE
## 5 Other
## 6 NC
## 7 MW