如何检查一个向量是否是 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 的子集,(两个向量都只包含二进制值)当且仅当
A
和B
长度相同,因此元素个数相同;
在 B
有 1
的所有地方,A
应该有 0
或 1
在 B
有 0
的所有地方,A
只能有 0
。
现在我想编写一个代码来验证
行内的内容
if(A subset of B){}
谢谢!
第一个条件检查相同的长度,第二个条件检查 A 在 B 有 0 的位置上没有 1。
if(length(A) == length(B) && all(B - A >= 0)) TRUE else FALSE
您可以测试 length
是否为 ==
以及 A 的 any
值是否在以下位置具有 1
B 有一个 1
并结合条件 &&
.
length(A) == length(B) && any(A[B==1]==1)
#[1] TRUE
满足原题条件:A和B的长度相同,因此元素个数相同;然而,A 是 B 的子集,因为 A 在与 B.
相同的位置具有元素 1
完成:
A
和B
长度相同,因此元素个数相同;
A
应该在 B
有 1
的地方至少有一个 1
在 B
有 0
的所有地方,A
只能有 0
。
length(A) == length(B) && any(A[B==1]==1) && all(A[B==0]==0)
完成:
A
和B
长度相同,因此元素个数相同;
在 B
有 0
的所有地方,A
只能有 0
。
length(A) == length(B) && all(A[B==0]==0)
说,我有两个向量:
A <- c(1,0,0,1,0,0,0)
和
B <- c(1,0,0,1,0,1,1)
根据我的定义,A 是 B 的子集,(两个向量都只包含二进制值)当且仅当
A
和B
长度相同,因此元素个数相同;
在 A
应该有0
或1
在B
有0
的所有地方,A
只能有0
。
B
有 1
的所有地方,现在我想编写一个代码来验证
行内的内容if(A subset of B){}
谢谢!
第一个条件检查相同的长度,第二个条件检查 A 在 B 有 0 的位置上没有 1。
if(length(A) == length(B) && all(B - A >= 0)) TRUE else FALSE
您可以测试 length
是否为 ==
以及 A 的 any
值是否在以下位置具有 1
B 有一个 1
并结合条件 &&
.
length(A) == length(B) && any(A[B==1]==1)
#[1] TRUE
满足原题条件:A和B的长度相同,因此元素个数相同;然而,A 是 B 的子集,因为 A 在与 B.
相同的位置具有元素 1完成:
A
和B
长度相同,因此元素个数相同;A
应该在B
有1
的地方至少有一个 A
只能有0
。
1
在 B
有 0
的所有地方,length(A) == length(B) && any(A[B==1]==1) && all(A[B==0]==0)
完成:
A
和B
长度相同,因此元素个数相同;
在 A
只能有0
。
B
有 0
的所有地方,length(A) == length(B) && all(A[B==0]==0)