A quick look at the collection of Equity Action Plan codes so far!

library(tidyverse)
library(googlesheets4)
library(tidytext)
library(wordcloud)
library(ghibli)
library(patchwork)
library(scales)

url <- "https://docs.google.com/spreadsheets/d/1PBk5L2qsqR_ur2W8Jiw7NXZ9SQtw5rn-U6-LoaO4hNM/edit?usp=sharing"

eap <- read_sheet(url, skip = 2)

eap <- eap %>% 
  mutate(coded = ifelse(is.na(who1), "No", "Yes"))

How many agencies? How many action items? Action item language…

I added just the agency names and action plan titles for all agencies to the full file. There are 23 primary agencies; 19 of them are included in our analysis for a total of 97 separate action items.

Federal agencies provide between 3 and 7 action items/focus areas in their initial Equity Action plans.

# number of actions by agency
eap %>% group_by(agency, coded) %>% 
  summarize(actions = n()) %>% 
  ggplot(aes(x = actions, y = fct_reorder(agency, actions))) + 
  geom_segment(aes(x = 0, xend = actions, y = fct_reorder(agency, actions), yend = fct_reorder(agency, actions)),
               color = "gray") +
  geom_point(aes(size = coded), 
             color = ghibli_palettes$PonyoMedium[3])  +
  scale_size_manual(values = c(2,3), guide = "none") +
  labs(x = "", y = "") +
  theme_minimal()

Looking just at the action item titles, after ignoring “stop words” (those extremely common words such as “the”, “of”, “to” that add little substantive content), the 50 most frequently occuring words are:

# keep just agency, title
titles <- eap %>% 
  select(agency, item)

# unnest word tokens and remove stop words
data(stop_words)

titles <- titles %>% 
  unnest_tokens(word, item) %>% 
  anti_join(stop_words)

# cloud
titles %>%
  count(word) %>%
  with(wordcloud(word, n, 
                 max.words = 50,
                 min.freq = 4,
                 scale=c(3, .5), 
                 rot.per = .2,
                 colors = ghibli_palettes$SpiritedMedium))

To see the frequency of language with more precision, the count of word frequency (for words used more than 5 times) is:

# word frequency, overall
titles %>%
  count(word, sort = TRUE) %>% 
  filter(n > 5) %>% 
  ggplot(aes(x = fct_reorder(word, n), y = n)) +
  geom_point(color = ghibli_palettes$SpiritedMedium[4], size = 3) +
  coord_flip() +
  labs(x = "", y = "", title = "Word Frequency", 
       subtitle = "Among word appearing more than 5 times") +
  theme_minimal()

The Who and What of action items

Action items could target multiple dimensions of populationsand provide resources of multiple types, as outlined by Leach et al.1 Below we look at the number of population and resource types mentioned within individual action items.

eap <- eap %>% 
  mutate(who_num = str_count(who_domain, ","),
         who_num = ifelse(!is.na(who_domain), who_num+1, NA_integer_)) %>% 
  mutate(what_num = str_count(what_domain, ","),
         what_num = ifelse(!is.na(what_domain), what_num+1, NA_integer_))

p1 <- eap %>% 
  ggplot(aes(x = who_num)) + geom_bar(fill = ghibli_palettes$TotoroLight[4]) +
  labs(x = "Number of 'Who' Domains Mentioned", y = "Number of Action Items") +
  theme_minimal()
p2 <- eap %>% 
  ggplot(aes(x = what_num)) + geom_bar(fill = ghibli_palettes$TotoroLight[5]) +
  labs(x = "Number of 'What' Domains Mentioned", y = "Number of Action Items") +
  theme_minimal()

p1 + p2

What are the dimensions of people and resources most commonly referenced? Based on the action items coded so far:

# most common who/what domains
eap <- eap %>% 
  mutate(who_class = ifelse(str_detect(who_domain, "class"), 1, 0),
         who_occupation = ifelse(str_detect(who_domain, "occupation"), 1, 0),
         who_gender = ifelse(str_detect(who_domain, "gender"), 1, 0),
         who_racethnicity = ifelse(str_detect(who_domain, "ethnicity"), 1, 0),
         who_geography = ifelse(str_detect(who_domain, "geography"), 1, 0),
         who_generational = ifelse(str_detect(who_domain, "generational"), 1, 0),
         who_identity = ifelse(str_detect(who_domain, "identity"), 1, 0))

items_total <- eap %>% filter(!is.na(who1)) %>% 
  summarize(n_distinct(item)) %>% as_vector()

# overall
p3 <- eap %>% 
  select(who_class:who_identity) %>% 
  colSums(na.rm = TRUE) %>% 
  as_tibble(rownames = "the_who") %>% 
  mutate(percent = (value/items_total)*100) %>% 
  ggplot(aes(x = percent, y = fct_reorder(the_who, percent))) +
  geom_segment(aes(x = 0, xend = percent, fct_reorder(the_who, percent), yend = fct_reorder(the_who, percent)),
               color = "gray") +
  geom_point(color = ghibli_palettes$PonyoMedium[2], size = 3) +
  scale_x_continuous(labels = label_percent(scale = 1)) +
  labs(x = "", y = "",
       title = "Percent of Items Mentioning Population Dimensions") +
  theme_minimal()

# the what
eap <- eap %>% 
  mutate(what_economic = ifelse(str_detect(what_domain, "economic"), 1, 0),
         what_social = ifelse(str_detect(what_domain, "social"), 1, 0),
         what_cultural = ifelse(str_detect(what_domain, "cultural"), 1, 0),
         what_political = ifelse(str_detect(what_domain, "political"), 1, 0),
         what_spatial = ifelse(str_detect(what_domain, "spatial"), 1, 0),
         what_environment = ifelse(str_detect(what_domain, "environment"), 1, 0),
         what_knowledge = ifelse(str_detect(what_domain, "knowledge"), 1, 0))

p4 <- eap %>% 
  select(what_economic:what_knowledge) %>% 
  colSums(na.rm = TRUE) %>% 
  as_tibble(rownames = "the_what") %>% 
  mutate(percent = (value/items_total)*100) %>% 
  ggplot(aes(x = percent, y = fct_reorder(the_what, percent))) +
  geom_segment(aes(x = 0, xend = percent, fct_reorder(the_what, percent), yend = fct_reorder(the_what, percent)),
               color = "gray") +
  geom_point(color = ghibli_palettes$PonyoMedium[5], size = 3) +
  scale_x_continuous(labels = label_percent(scale = 1)) +
  labs(x = "", y = "",
       title = "Percent of Items Mentioning Resource Dimensions") +
  theme_minimal()

p3 / p4

The Nature and Contextualization of action items

Leach et al also suggested a final dimension of equity, centered around whether action promoted improvements in procedure, changes in the distribution of resources, or recognition of rights and identities. How commonly were these dimensions invoked in the action items?

eap <- eap %>% 
  mutate(is_recognitional = ifelse(str_detect(recognition, "yes"), 1, 0),
         is_procedural = ifelse(str_detect(procedural, "yes"), 1, 0),
         is_distributional = ifelse(str_detect(distributional, "yes"), 1, 0))

eap %>% 
  select(is_recognitional:is_distributional) %>% 
  colSums(na.rm = TRUE) %>% 
  as_tibble(rownames = "the_type") %>% 
  mutate(percent = (value/items_total)*100) %>% 
  ggplot(aes(x = percent, y = fct_reorder(the_type, percent))) +
  geom_segment(aes(x = 0, xend = percent, fct_reorder(the_type, percent), yend = fct_reorder(the_type, percent)),
               color = "gray") +
  geom_point(color = ghibli_palettes$PonyoMedium[6], size = 3) +
  scale_x_continuous(labels = label_percent(scale = 1)) +
  labs(x = "", y = "",
       title = "Percent of Items Mentioning each Equity Approach") +
  theme_minimal()

Brand2 further suggested a way of examining equity built around the way it is contextualized – as historical, as communal, and as individualistic – and the outcomes or agendas those choices serve.

eap <- eap %>% 
  mutate(is_historicized = ifelse(str_detect(historical, "yes"), 1, 0),
         is_individualistic = ifelse(str_detect(individualistic, "yes"), 1, 0),
         is_communal = ifelse(str_detect(communal, "yes"), 1, 0))

eap %>% 
  select(is_historicized:is_communal) %>% 
  colSums(na.rm = TRUE) %>% 
  as_tibble(rownames = "the_context") %>% 
  mutate(percent = (value/items_total)*100) %>% 
  ggplot(aes(x = percent, y = fct_reorder(the_context, percent))) +
  geom_segment(aes(x = 0, xend = percent, fct_reorder(the_context, percent), yend = fct_reorder(the_context, percent)),
               color = "gray") +
  geom_point(color = ghibli_palettes$PonyoMedium[2], size = 3) +
  scale_x_continuous(labels = label_percent(scale = 1)) +
  labs(x = "", y = "",
       title = "Percent of Items Mentioning each Equity Approach") +
  theme_minimal()


  1. Melissa Leach, Belinda Reyers, Xuemei Bai, Eduardo S. Brondizio, Christina Cook, Sandra Díaz, Giovana Espindola, Michelle Scobie, Mark Stafford-Smith and Suneetha M Subramanian. 2018. “Equity and Sustainability in the Anthropocene: A Social–Ecological Systems Perspective on Their Intertwined Futures.” Global Sustainability 1: 1-13.↩︎

  2. Anna Brand. 2015. “The Politics of Defining and Building Equity in the Twenty-First Century.” Journal of Planning Education and Research 35: 249-264.↩︎