Scoped verbs (_if
, _at
, _all
) have been superseded by the use of
across()
in an existing verb. See vignette("colwise")
for details.
These scoped variants of distinct()
extract distinct rows by a
selection of variables. Like distinct()
, you can modify the
variables before ordering with the .funs
argument.
distinct_all(.tbl, .funs = list(), ..., .keep_all = FALSE)distinct_at(.tbl, .vars, .funs = list(), ..., .keep_all = FALSE)
distinct_if(.tbl, .predicate, .funs = list(), ..., .keep_all = FALSE)
A tbl
object.
A function fun
, a quosure style lambda ~ fun(.)
or a list of either form.
Additional arguments for the function calls in
.funs
. These are evaluated only once, with tidy dots support.
If TRUE
, keep all variables in .data
.
If a combination of ...
is not distinct, this keeps the
first row of values.
A list of columns generated by vars()
,
a character vector of column names, a numeric vector of column
positions, or NULL
.
A predicate function to be applied to the columns
or a logical vector. The variables for which .predicate
is or
returns TRUE
are selected. This argument is passed to
rlang::as_function()
and thus supports quosure-style lambda
functions and strings representing function names.
The grouping variables that are part of the selection are taken into account to determine distinct rows.
df <- tibble(x = rep(2:5, each = 2) / 2, y = rep(2:3, each = 4) / 2)
distinct_all(df)
# ->
distinct(df, across())
distinct_at(df, vars(x,y))
# ->
distinct(df, across(c(x, y)))
distinct_if(df, is.numeric)
# ->
distinct(df, across(where(is.numeric)))
# You can supply a function that will be applied before extracting the distinct values
# The variables of the sorted tibble keep their original values.
distinct_all(df, round)
# ->
distinct(df, across(everything(), round))
Run the code above in your browser using DataLab