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)
.tbl | A |
---|---|
.funs | A function |
... | Additional arguments for the function calls in
|
.keep_all | If |
.vars | A list of columns generated by |
.predicate | A predicate function to be applied to the columns
or a logical vector. The variables for which |
The grouping variables that are part of the selection are taken into account to determine distinct rows.
#> # A tibble: 8 x 2 #> x y #> <dbl> <dbl> #> 1 1 1 #> 2 1 1 #> 3 1.5 1 #> 4 1.5 1 #> 5 2 1.5 #> 6 2 1.5 #> 7 2.5 1.5 #> 8 2.5 1.5distinct_all(df)#> # 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.5distinct_if(df, is.numeric)#> # 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# 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)#> # A tibble: 3 x 2 #> x y #> <dbl> <dbl> #> 1 1 1 #> 2 2 1 #> 3 2 2#> # A tibble: 8 x 2 #> x y #> <dbl> <dbl> #> 1 1 1 #> 2 1 1 #> 3 1.5 1 #> 4 1.5 1 #> 5 2 1.5 #> 6 2 1.5 #> 7 2.5 1.5 #> 8 2.5 1.5