Keep strings matching a pattern, or find positions.
str_subset() is a wrapper around x[str_detect(x, pattern)],
and is equivalent to grep(pattern, x, value = TRUE).
str_which() is a wrapper around which(str_detect(x, pattern)),
and is equivalent to grep(pattern, x).
See str_detect() for an equivalent to grepl(pattern, x).
str_subset(string, pattern, negate = FALSE) str_which(string, pattern, negate = FALSE)
string |
Input vector. Either a character vector, or something coercible to one. |
pattern |
Pattern to look for. The default interpretation is a regular expression, as described
in stringi::stringi-search-regex. Control options with
Match a fixed string (i.e. by comparing only bytes), using
Match character, word, line and sentence boundaries with
|
negate |
If |
Vectorised over string and pattern
A character vector.
grep() with argument value = TRUE,
stringi::stri_subset() for the underlying implementation.
fruit <- c("apple", "banana", "pear", "pinapple")
str_subset(fruit, "a")
str_which(fruit, "a")
str_subset(fruit, "^a")
str_subset(fruit, "a$")
str_subset(fruit, "b")
str_subset(fruit, "[aeiou]")
# Returns elements that do NOT match
str_subset(fruit, "^p", negate = TRUE)
# Missings never match
str_subset(c("a", NA, "b"), ".")
str_which(c("a", NA, "b"), ".")Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.