2015-12-11 6 views
6

Ich habe in R. über logische Ausdrücke unglaublich verwirrt Der folgende Befehl gibt mir das erwartete Ergebnis, da 1: 1 oder gleich 2 ist gleich:OR Ausdruck in R

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

Aber auf der anderen Seite I erhalten:

Wenn jemand einen Einblick geben könnte, was hier passiert, wäre ich sehr dankbar!

+3

Sie können nicht 'or' mit numerischen .. in der ersten Anweisung' 1' interpent als 'T' verwenden Sie% in% oder (3 == 3 | 3 == 4) – Batanichek

+0

Versuchen Sie diese in der Konsole : '(3 | 4)'; '(1 | 2)'; '1 == WAHR'; '1 == (3 | 4)'; '0 == FALSCH'; '3 == FALSCH'; '3 == TRUE', usw. – eipi10

+2

Nur um zu erweitern was @Batanichek sagte,' TRUE' und 'FALSE' werden als 1 bzw. 0 in einem numerischen Kontext interpretiert (zB probiere' as.numeric (c (FALSE, TRUE)) 'oder' sum (c (WAHR, WAHR)) '). Für allgemeine logische Operationen mit Zahlen können Sie '% in%' (z. B. '3% in% c (3,4)') verwenden. – eipi10

Antwort

0

Bitte lesen Sie die Kommentare unter Ihrer Frage für Erklärungen. Ich denke, was Sie wirklich wollen, zu tun ist:

1 == 1 | 1 == 2 

Dies ist TRUE weil der erste Test TRUE ist.

3 == 3 & 3 == 4 

Dies ist FALSE weil der zweite Test FALSE und & erfordert beide (oder alle) testet TRUE zu sein.