OR R

2015-12-11 4 views
6

での発現の私は1が1に等しいか、または2に等しいので、次のコマンドは私に期待される結果を与えるR.に論理式上で、信じられないほど混乱している:OR R

> 1 == (1 | 2) 
[1] TRUE 

しかし、一方で、私は取得:

3 == (3 | 4) 
[1] FALSE 

誰もがここで何が起こっているかにいくつかの洞察力を与えることができれば、私は非常に感謝されます!

+3

'%in%'または(3 == 3 | 3 == 4)を使用することができる 'T 'としての最初の文' 1'の解釈では '..または'を数字で使うことはできません – Batanichek

+0

コンソールで試してみてください: '(3 | 4)'; '(1 | 2)'; '1 == TRUE'; '1 ==(3 | 4)'; '0 == FALSE'; '3 == FALSE'; '3 == TRUE'など – eipi10

+2

@Batanichekが言ったことを拡張するだけで、数値コンテキストで' TRUE'と 'FALSE'はそれぞれ1と0に解釈されます(例えば、' as.numeric(c (FALSE、TRUE)) 'または' sum(c(TRUE、TRUE)) ')を返します。数字による一般的な論理演算では、 '%in% 'を使用することができます(例えば、%c(3,4)で3%)。 – eipi10

答えて

0

説明のためにあなたの質問の下のコメントをお読みください。

1 == 1 | 1 == 2 

最初のテストはTRUEあるので、これはTRUEです:私はあなたが本当にやりたいことはあると思います。

3 == 3 & 3 == 4 

第二の試験はFALSEあり、&は両方(またはすべて)が必要TRUEことがテストからでFALSEあります。