R: FAQ - Error: Must be used within a _selecting_ function

faq-selection-context {tidyselect} | R Documentation

## FAQ - Error: Must be used within a selecting function

### Description

Functions like `starts_with()`, `contains()` or `matches()` are selection helpers that only work in a selection context.

Examples of valid selection contexts are:

- Inside `dplyr::select()`.

- The `cols` argument of `tidyr::pivot_longer()`.

Using a selection helper anywhere else results in an error:

    starts_with("foo")
    #> Error:
    #> ! `starts_with()` must be used within a *selecting* function.
    #> i See <https://tidyselect.r-lib.org/reference/faq-selection-context.html>.

    mtcars[contains("foo")]
    #> Error:
    #> ! `contains()` must be used within a *selecting* function.
    #> i See <https://tidyselect.r-lib.org/reference/faq-selection-context.html>.

    subset(mtcars, select = matches("foo"))
    #> Error:
    #> ! `matches()` must be used within a *selecting* function.
    #> i See <https://tidyselect.r-lib.org/reference/faq-selection-context.html>.

If you see this error, you’ve probably used a selection helper in the wrong place, possibly as the result of a typo (e.g. misplaced comma or wrong argument name).

[Package tidyselect version 1.1.2 Index]