Import your data

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

Chapter 14

Tools

Detect matches

data %>% 
  summarize(num_mammals = sum(str_detect(CategoryName, "^Mammal$")))
## # A tibble: 1 × 1
##   num_mammals
##         <int>
## 1          55
data %>% 
  summarize(num_birds = sum(str_detect(CategoryName, "^Bird$")))
## # A tibble: 1 × 1
##   num_birds
##       <int>
## 1       364

Extract matches

colours <- c("red", "orange", "yellow", "green", "blue", "purple")
colour_match <- str_c(colours, collapse = "|")

# Filter rows with color in CommonNames
has_colour <- str_subset(data$CommonNames, colour_match)

# Extract the color word from the CommonName
str_extract(has_colour, colour_match)
##  [1] "red"    "red"    "red"    "red"    "red"    "red"    "red"    "red"   
##  [9] "red"    "red"    "red"    "red"    "yellow" "red"    "purple" "green" 
## [17] "red"    "red"    "red"    "red"    "red"    "red"    "red"    "green" 
## [25] "green"  "green"  "red"

Replacing matches

data %>%
  mutate(SciName_replaced = str_replace(SciName, "^[A-Z]", "-")) %>%
  select(SciName, SciName_replaced)
## # A tibble: 1,709 × 2
##    SciName                SciName_replaced      
##    <chr>                  <chr>                 
##  1 Alces alces            -lces alces           
##  2 Odocoileus virginianus -docoileus virginianus
##  3 Canis latrans          -anis latrans         
##  4 Canis lupus            -anis lupus           
##  5 Vulpes vulpes          -ulpes vulpes         
##  6 Lynx canadensis        -ynx canadensis       
##  7 Lynx rufus             -ynx rufus            
##  8 Mephitis mephitis      -ephitis mephitis     
##  9 Lutra canadensis       -utra canadensis      
## 10 Martes pennanti        -artes pennanti       
## # ℹ 1,699 more rows