作用域动词( _if
、 _at
、 _all
)已被现有动词中的 pick()
或 across()
取代。有关详细信息,请参阅vignette("colwise")
。
distinct()
的这些 scoped 变体通过选择变量来提取不同的行。与 distinct()
一样,您可以在使用 .funs
参数进行排序之前修改变量。
用法
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
-
tbl
对象。 - .funs
-
函数
fun
、 quosure 样式 lambda~ fun(.)
或任一形式的列表。 - ...
-
.funs
中函数调用的附加参数。这些仅在 tidy dots 支持下评估一次。 - .keep_all
-
如果是
TRUE
,则将所有变量保留在.data
中。如果...
的组合不不同,则保留第一行值。 - .vars
-
由
vars()
生成的列列表、列名称的字符向量、列位置的数值向量或NULL
。 - .predicate
-
应用于列或逻辑向量的谓词函数。选择
.predicate
为或返回TRUE
的变量。该参数传递给rlang::as_function()
,因此支持quosure-style lambda 函数和表示函数名称的字符串。
例子
df <- tibble(x = rep(2:5, each = 2) / 2, y = rep(2:3, each = 4) / 2)
distinct_all(df)
#> # A tibble: 4 × 2
#> x y
#> <dbl> <dbl>
#> 1 1 1
#> 2 1.5 1
#> 3 2 1.5
#> 4 2.5 1.5
# ->
distinct(df, pick(everything()))
#> # A tibble: 4 × 2
#> x y
#> <dbl> <dbl>
#> 1 1 1
#> 2 1.5 1
#> 3 2 1.5
#> 4 2.5 1.5
distinct_at(df, vars(x,y))
#> # A tibble: 4 × 2
#> x y
#> <dbl> <dbl>
#> 1 1 1
#> 2 1.5 1
#> 3 2 1.5
#> 4 2.5 1.5
# ->
distinct(df, pick(x, y))
#> # A tibble: 4 × 2
#> x y
#> <dbl> <dbl>
#> 1 1 1
#> 2 1.5 1
#> 3 2 1.5
#> 4 2.5 1.5
distinct_if(df, is.numeric)
#> # A tibble: 4 × 2
#> x y
#> <dbl> <dbl>
#> 1 1 1
#> 2 1.5 1
#> 3 2 1.5
#> 4 2.5 1.5
# ->
distinct(df, pick(where(is.numeric)))
#> # A tibble: 4 × 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 × 2
#> x y
#> <dbl> <dbl>
#> 1 1 1
#> 2 2 1
#> 3 2 2
# ->
distinct(df, across(everything(), round))
#> # A tibble: 3 × 2
#> x y
#> <dbl> <dbl>
#> 1 1 1
#> 2 2 1
#> 3 2 2
相关用法
- R dplyr distinct 保留不同/唯一的行
- R dplyr desc 降序
- R dplyr do 做任何事情
- R dplyr group_trim 修剪分组结构
- R dplyr slice 使用行的位置对行进行子集化
- R dplyr copy_to 将本地数据帧复制到远程src
- R dplyr sample_n 从表中采样 n 行
- R dplyr consecutive_id 为连续组合生成唯一标识符
- R dplyr row_number 整数排名函数
- R dplyr band_members 乐队成员
- R dplyr mutate-joins 变异连接
- R dplyr nth 从向量中提取第一个、最后一个或第 n 个值
- R dplyr coalesce 找到第一个非缺失元素
- R dplyr group_split 按组分割 DataFrame
- R dplyr mutate 创建、修改和删除列
- R dplyr order_by 用于排序窗口函数输出的辅助函数
- R dplyr context 有关“当前”组或变量的信息
- R dplyr percent_rank 比例排名函数
- R dplyr recode 重新编码值
- R dplyr starwars 星球大战人物
- R dplyr between 检测值落在指定范围内的位置
- R dplyr cumall 任何、全部和平均值的累积版本
- R dplyr group_map 对每个组应用一个函数
- R dplyr nest_join 嵌套连接
- R dplyr pull 提取单列
注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Select distinct rows by a selection of variables。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。