如何检查集合A是否是R中集合B的子集?

时间:2016-06-06 11:58:14

标签: r set subset

我有两组A和B.我想检查A是否是B组的子集。我试过我知道R中的set操作。我试过了intersect,union,setdiff。但是,没有他们是有帮助的。例如,

A = c(1, 2, 3, 4)

B = c(1, 2, 3, 4, 5)

我正在寻找一个返回TRUE或FALSE的函数。 我使用A %in% B并比较总和和长度,它完成相同的工作。但我觉得有一种更好的做法。

length(A %in% B) == sum(A %in% B)返回TRUElength(B %in% A) == sum(B %in% A)返回FALSE

2 个答案:

答案 0 :(得分:13)

我们可以将all%in%

一起使用
all(A %in% B)
#[1] TRUE

all(B %in% A)
#[1] FALSE

答案 1 :(得分:2)

另一种方法是检查AB

的子集
setequal(intersect(A,B), A)
# [1] TRUE

检查BA

的子集
setequal(intersect(A,B), B)
# [1] FALSE