簡體   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