6
での発現の私は1が1に等しいか、または2に等しいので、次のコマンドは私に期待される結果を与えるR.に論理式上で、信じられないほど混乱している:OR R
> 1 == (1 | 2)
[1] TRUE
しかし、一方で、私は取得:
3 == (3 | 4)
[1] FALSE
誰もがここで何が起こっているかにいくつかの洞察力を与えることができれば、私は非常に感謝されます!
での発現の私は1が1に等しいか、または2に等しいので、次のコマンドは私に期待される結果を与えるR.に論理式上で、信じられないほど混乱している:OR R
> 1 == (1 | 2)
[1] TRUE
しかし、一方で、私は取得:
3 == (3 | 4)
[1] FALSE
誰もがここで何が起こっているかにいくつかの洞察力を与えることができれば、私は非常に感謝されます!
説明のためにあなたの質問の下のコメントをお読みください。
1 == 1 | 1 == 2
最初のテストはTRUE
あるので、これはTRUE
です:私はあなたが本当にやりたいことはあると思います。
3 == 3 & 3 == 4
第二の試験はFALSE
あり、&
は両方(またはすべて)が必要TRUE
ことがテストからでFALSE
あります。
'%in%'または(3 == 3 | 3 == 4)を使用することができる 'T 'としての最初の文' 1'の解釈では '..または'を数字で使うことはできません – Batanichek
コンソールで試してみてください: '(3 | 4)'; '(1 | 2)'; '1 == TRUE'; '1 ==(3 | 4)'; '0 == FALSE'; '3 == FALSE'; '3 == TRUE'など – eipi10
@Batanichekが言ったことを拡張するだけで、数値コンテキストで' TRUE'と 'FALSE'はそれぞれ1と0に解釈されます(例えば、' as.numeric(c (FALSE、TRUE)) 'または' sum(c(TRUE、TRUE)) ')を返します。数字による一般的な論理演算では、 '%in% 'を使用することができます(例えば、%c(3,4)で3%)。 – eipi10