str_subset

The function stringr::str_subset() returns the element of a vector that match a pattern/regular expression.

Tidyverse reference page

String vector

Prior to using the function create a vector of strings.

#Create vector of strings
vec <- c("Rose", "Thistle", "Leek", "Shamrock")
#View vector
vec
[1] "Rose"     "Thistle"  "Leek"     "Shamrock"

Basic searches

You can specify a string pattern to be used for detection.

#Subset elements containing letter a
vec |> stringr::str_subset("a")
[1] "Shamrock"

The function is case-sensitive. “R” will detect “Rose” but not “shamrock”.

#Subset elements containing the letter R
vec |> stringr::str_subset("R")
[1] "Rose"

You can use various regular expressions.

#Subset elements containing ending with k 
vec |> stringr::str_subset("k$")
[1] "Leek"     "Shamrock"
#Subset elements containing R or r
vec |> stringr::str_subset("[Rr]")
[1] "Rose"     "Shamrock"
#Subset elements containing s that has a vowel before it
vec |> stringr::str_subset("[aeiou]s")
[1] "Rose"    "Thistle"

Negate

You carry out an inverted search (i.e. it returns FALSE if it does match) with the option negate=TRUE.

#Invert subset elements containing letter s that has a vowel before it
vec |> stringr::str_subset("[aeiou]s", negate=TRUE)
[1] "Leek"     "Shamrock"