R语言:集合运算

输入三个向量:

> a=c(3,5,7)

> b=5:9

> c=seq(3,7,2)

> d=c(3L,5L,7L)

R语言:集合运算

检查向量中是否有某元素

> is.element(2,a)
[1] FALSE
> is.element(3,a)
[1] TRUE
> 3 %in% a
[1] TRUE

取交集

> intersect(a,b)
[1] 5 7

取并集

> union(a,b)
[1] 3 5 7 6 8 9

取差集

> setdiff(a,b)
[1] 3
> setdiff(b,a)
[1] 6 8 9
> setdiff(b,b)
integer(0)

检查两向量是否相同

> setequal(a,b)
[1] FALSE
> setequal(a,c)
[1] TRUE

> d=c(3L,5L,7L)
> setequal(a,d)
[1] TRUE

检查a是否为b的子集

> all(a %in% b)
[1] FALSE