如何检查一个向量是否是 R 中另一个向量的子集?

How to check whether a vector is subset of another one in R?

说,我有两个向量:

A <- c(1,0,0,1,0,0,0)

B <- c(1,0,0,1,0,1,1)

根据我的定义,A 是 B 的子集,(两个向量都只包含二进制值)当且仅当

现在我想编写一个代码来验证

行内的内容
if(A subset of B){}

谢谢!

第一个条件检查相同的长度,第二个条件检查 A 在 B 有 0 的位置上没有 1。

if(length(A) == length(B) && all(B - A >= 0)) TRUE else FALSE

您可以测试 length 是否为 == 以及 Aany 值是否在以下位置具有 1 B 有一个 1 并结合条件 &&.

length(A) == length(B) && any(A[B==1]==1)
#[1] TRUE

满足原题条件:A和B的长度相同,因此元素个数相同;然而,A 是 B 的子集,因为 A 在与 B.

相同的位置具有元素 1

完成:

  • AB长度相同,因此元素个数相同;
  • A 应该在 B1
  • 的地方至少有一个 1B0 的所有地方,
  • A 只能有 0
length(A) == length(B) && any(A[B==1]==1) && all(A[B==0]==0)

完成:

  • AB长度相同,因此元素个数相同;
  • B0 的所有地方,
  • A 只能有 0
length(A) == length(B) && all(A[B==0]==0)