R: Keep strings matching a pattern, or find positions.

str_subset {stringr} | R Documentation

## Keep strings matching a pattern, or find positions.

### Description

`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)`.

### Usage

    str_subset(string, pattern)

    str_which(string, pattern)

### Arguments

`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 `regex()`. Match a fixed string (i.e. by comparing only bytes), using `fixed()`. This is fast, but approximate. Generally, for matching human text, you'll want `coll()` which respects character matching rules for the specified locale. Match character, word, line and sentence boundaries with `boundary()`. An empty pattern, "", is equivalent to `boundary("character")`.

### Details

Vectorised over `string` and `pattern`

### Value

A character vector.

### See Also

`grep()` with argument `value = TRUE`, `stringi::stri_subset()` for the underlying implementation.

### Examples

    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]")

    # Missings never match
    str_subset(c("a", NA, "b"), ".")
    str_which(c("a", NA, "b"), ".")

[Package stringr version 1.3.1 Index]