filter_all {dplyr} | R Documentation |
These scoped filtering verbs apply a predicate expression to a
selection of variables. The predicate expression should be quoted
with all_vars()
or any_vars()
and should mention the pronoun
.
to refer to variables.
filter_all(.tbl, .vars_predicate, .preserve = FALSE) filter_if(.tbl, .predicate, .vars_predicate, .preserve = FALSE) filter_at(.tbl, .vars, .vars_predicate, .preserve = FALSE)
.tbl |
A |
.vars_predicate |
A quoted predicate expression as returned by
Can also be a function or purrr-like formula. In this case, the intersection of the results is taken by default and there's currently no way to request the union. |
.preserve |
when |
.predicate |
A predicate function to be applied to the columns
or a logical vector. The variables for which |
.vars |
A list of columns generated by |
The grouping variables that are part of the selection are taken into account to determine filtered rows.
# While filter() accepts expressions with specific variables, the # scoped filter verbs take an expression with the pronoun `.` and # replicate it over all variables. This expression should be quoted # with all_vars() or any_vars(): all_vars(is.na(.)) any_vars(is.na(.)) # You can take the intersection of the replicated expressions: filter_all(mtcars, all_vars(. > 150)) # Or the union: filter_all(mtcars, any_vars(. > 150)) # You can vary the selection of columns on which to apply the # predicate. filter_at() takes a vars() specification: filter_at(mtcars, vars(starts_with("d")), any_vars((. %% 2) == 0)) # And filter_if() selects variables with a predicate function: filter_if(mtcars, ~ all(floor(.) == .), all_vars(. != 0)) # We're working on a new syntax to allow functions instead, # including purrr-like lambda functions. This is already # operational, but there's currently no way to specify the union of # the predicate results: mtcars %>% filter_at(vars(hp, vs), ~ . %% 2 == 0)