Use filter()
find rows/cases where conditions are true. Unlike
base subsetting with [
, rows where the condition evaluates to NA
are
dropped.
filter(.data, ...)
A tbl. All main verbs are S3 generics and provide methods
for tbl_df()
, dtplyr::tbl_dt()
and dbplyr::tbl_dbi()
.
Logical predicates defined in terms of the variables in .data
.
Multiple conditions are combined with &
. Only rows where the
condition evaluates to TRUE
are kept.
These arguments are automatically quoted and
evaluated in the context of the data
frame. They support unquoting and
splicing. See vignette("programming")
for an introduction to
these concepts.
An object of the same class as .data
.
When applied to a data frame, row names are silently dropped. To preserve,
convert to an explicit variable with tibble::rownames_to_column()
.
The three scoped variants (filter_all()
, filter_if()
and
filter_at()
) make it easy to apply a filtering condition to a
selection of variables.
Note that dplyr is not yet smart enough to optimise filtering optimisation
on grouped datasets that don't need grouped calculations. For this reason,
filtering is often considerably faster on ungroup()
ed data.
filter_all()
, filter_if()
and filter_at()
.
Other single table verbs: arrange
,
mutate
, select
,
slice
, summarise
# NOT RUN { filter(starwars, species == "Human") filter(starwars, mass > 1000) # Multiple criteria filter(starwars, hair_color == "none" & eye_color == "black") filter(starwars, hair_color == "none" | eye_color == "black") # Multiple arguments are equivalent to and filter(starwars, hair_color == "none", eye_color == "black") # }
Run the code above in your browser using DataCamp Workspace