繁体   English   中英

R - 使用条件匹配两个向量

[英]R - Match two vectors with conditional

我有两个二进制向量,我试图找到最有效的方法来比较它们,而不仅仅是标准“它们是否相等?”。

我的功能是,如果我有向量x和向量y我想知道在向量x中有多少次我在相同的索引处有一个1,向量y有一个0.我还需要当向量y有1 +时有一个0,其中向量x也有一个0.(注意:如果我找到其中任何一个我可以找到反向得到另一个,我只是不确定哪个更容易/更有效,即。VectorY得分=长度( VectorX) - VectorX得分)

例如:
向量x:1 1 1 0 0 1 - 得分:2
矢量y:0 1 0 1 0 1 - 得分:4

我知道我可以使用for循环遍历每个索引,但是如果可能的话我想要更高效的东西。 我的矢量长度为100,我需要做很多这些比较,所以速度很重要。

我试图使用sum命令,但我无法弄清楚如何向它添加复杂的条件。 我可以找到匹配的每个地点,但这还不足以解决这个问题。

例如:

sum(vectorX == vectorY)

样品:

> vx
[1] 1 1 1 0 0 1
> vy
[1] 0 1 0 1 0 1

你说:“在向量x中我有多少次在同一个索引上有1,向量y有0”

> vx==1 & vy==0 # constructs this vector:
[1]  TRUE FALSE  TRUE FALSE FALSE FALSE
> sum(vx==1 & vy==0) # its sum is the answer (TRUE=1, FALSE=0)
[1] 2

你还说:“当矢量y有一个1 +有一个0,其中矢量x也有一个0”,我不明白,但你可以澄清一下,并且考虑到我给你的答案,你可能会自己解决这个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM