返回相同%我有一些奇怪的事情比較兩個向量時:[R爲什麼 「==」 操作未%
individuals=c("A","C","X","Z")
m=c("A", "B", "C", "D", "E", "F", "X", "Z")
individuals == m
它返回:TRUE FALSE FALSE假假假TRUE TRUE
在末端爲:
which(individuals == m)
其中返回:1 7 8
我錯過了什麼?
返回相同%我有一些奇怪的事情比較兩個向量時:[R爲什麼 「==」 操作未%
individuals=c("A","C","X","Z")
m=c("A", "B", "C", "D", "E", "F", "X", "Z")
individuals == m
它返回:TRUE FALSE FALSE假假假TRUE TRUE
在末端爲:
which(individuals == m)
其中返回:1 7 8
我錯過了什麼?
你得到的結果確實是正確的。
individuals | m | res
A | A | T
B | C | F
C | X | F
D | Z | F
它,然後回收m
:
individuals | m | res
E | A | F
F | C | F
X | X | T
Z | Z | T
如果你想檢查的m
元素是individuals
使用%in%
:
R
每個值兩兩比較
m %in% individuals
# TRUE FALSE TRUE FALSE FALSE FALSE TRUE TRUE
我們可以使用match
!is.na(match(m, individuals))
#[1] TRUE FALSE TRUE FALSE FALSE FALSE TRUE TRUE
的原因意想不到的結果是如何==
比較再循環元件在「個體」被複制到的「M」的長度,即該值向量
rep(individuals, length.out = length(m))
#[1] "A" "C" "X" "Z" "A" "C" "X" "Z"
m==rep(individuals, length.out = length(m))
#[1] TRUE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
什麼將會是你的預期結果,也許你想'%in%' – user20650
抱歉,我應該有精確的,是爲哪個(個人==米)測試。與%在%的工作。 – Bas