distinct_all: Select distinct rows by a selection of variables

Description Usage Arguments Grouping variables Examples

View source: R/colwise-distinct.R

Description

\Sexpr[results=rd, stage=render]{lifecycle::badge("superseded")}

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.

Usage

1
2
3
4
5
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)

Arguments

.tbl

A tbl object.

.funs

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.

.keep_all

If TRUE, keep all variables in .data. If a combination of ... is not distinct, this keeps the first row of values.

.vars

A list of columns generated by vars(), a character vector of column names, a numeric vector of column positions, or NULL.

.predicate

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.

Grouping variables

The grouping variables that are part of the selection are taken into account to determine distinct rows.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
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))

Example output

Attaching package:dplyrThe following objects are masked frompackage:stats:

    filter, lag

The following objects are masked frompackage:base:

    intersect, setdiff, setequal, union

# A tibble: 4 x 2
      x     y
  <dbl> <dbl>
1   1     1  
2   1.5   1  
3   2     1.5
4   2.5   1.5
# A tibble: 4 x 2
      x     y
  <dbl> <dbl>
1   1     1  
2   1.5   1  
3   2     1.5
4   2.5   1.5
# A tibble: 4 x 2
      x     y
  <dbl> <dbl>
1   1     1  
2   1.5   1  
3   2     1.5
4   2.5   1.5
# A tibble: 4 x 2
      x     y
  <dbl> <dbl>
1   1     1  
2   1.5   1  
3   2     1.5
4   2.5   1.5
# A tibble: 4 x 2
      x     y
  <dbl> <dbl>
1   1     1  
2   1.5   1  
3   2     1.5
4   2.5   1.5
# A tibble: 4 x 2
      x     y
  <dbl> <dbl>
1   1     1  
2   1.5   1  
3   2     1.5
4   2.5   1.5
# A tibble: 3 x 2
      x     y
  <dbl> <dbl>
1     1     1
2     2     1
3     2     2
# A tibble: 3 x 2
      x     y
  <dbl> <dbl>
1     1     1
2     2     1
3     2     2

dplyr documentation built on June 19, 2021, 1:07 a.m.