使用数据帧的行执行集合运算。
-
intersect(x, y)
查找x
和y
中的所有行。 -
union(x, y)
查找x
或y
中的所有行,不包括重复项。 -
union_all(x, y)
查找x
或y
中的所有行,包括重复项。 -
setdiff(x, y)
查找x
中不在y
中的所有行。 -
symdiff(x, y)
计算对称差,即x
中不在y
中的所有行以及y
中不在x
中的所有行。 -
如果
x
和y
包含相同的行(忽略顺序),setequal(x, y)
返回TRUE
。
请注意, intersect()
、 union()
、 setdiff()
和 symdiff()
删除 x
和 y
中的重复项。
用法
intersect(x, y, ...)
union(x, y, ...)
union_all(x, y, ...)
setdiff(x, y, ...)
setequal(x, y, ...)
symdiff(x, y, ...)
例子
df1 <- tibble(x = 1:3)
df2 <- tibble(x = 3:5)
intersect(df1, df2)
#> # A tibble: 1 × 1
#> x
#> <int>
#> 1 3
union(df1, df2)
#> # A tibble: 5 × 1
#> x
#> <int>
#> 1 1
#> 2 2
#> 3 3
#> 4 4
#> 5 5
union_all(df1, df2)
#> # A tibble: 6 × 1
#> x
#> <int>
#> 1 1
#> 2 2
#> 3 3
#> 4 3
#> 5 4
#> 6 5
setdiff(df1, df2)
#> # A tibble: 2 × 1
#> x
#> <int>
#> 1 1
#> 2 2
setdiff(df2, df1)
#> # A tibble: 2 × 1
#> x
#> <int>
#> 1 4
#> 2 5
symdiff(df1, df2)
#> # A tibble: 4 × 1
#> x
#> <int>
#> 1 1
#> 2 2
#> 3 4
#> 4 5
setequal(df1, df2)
#> [1] FALSE
setequal(df1, df1[3:1, ])
#> [1] TRUE
# Note that the following functions remove pre-existing duplicates:
df1 <- tibble(x = c(1:3, 3, 3))
df2 <- tibble(x = c(3:5, 5))
intersect(df1, df2)
#> # A tibble: 1 × 1
#> x
#> <dbl>
#> 1 3
union(df1, df2)
#> # A tibble: 5 × 1
#> x
#> <dbl>
#> 1 1
#> 2 2
#> 3 3
#> 4 4
#> 5 5
setdiff(df1, df2)
#> # A tibble: 2 × 1
#> x
#> <dbl>
#> 1 1
#> 2 2
symdiff(df1, df2)
#> # A tibble: 4 × 1
#> x
#> <dbl>
#> 1 1
#> 2 2
#> 3 4
#> 4 5
相关用法
- R dplyr select_all 选择并重命名一组变量
- R dplyr select 使用列的名称和类型保留或删除列
- R dplyr slice 使用行的位置对行进行子集化
- R dplyr sample_n 从表中采样 n 行
- R dplyr starwars 星球大战人物
- R dplyr storms 风暴追踪数据
- R dplyr summarise_all 汇总多列
- R dplyr summarise 将每组汇总为一行
- R dplyr group_trim 修剪分组结构
- R dplyr copy_to 将本地数据帧复制到远程src
- 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 desc 降序
- R dplyr between 检测值落在指定范围内的位置
- R dplyr cumall 任何、全部和平均值的累积版本
注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Set operations。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。