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

8

我有两个集合A和B。我想要检查A是否是B的子集。我已经尝试过在R中使用集合操作,包括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)返回TRUE,而length(B %in% A) == sum(B %in% A)返回FALSE


我找不到之前的问题。谢谢你提供的参考! - Chris
2个回答

27

我们可以使用all%in%

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

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

5
另一种方式是,检查A是否是B的子集。
setequal(intersect(A,B), A)
# [1] TRUE

检查B是否是A的子集。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接