2015-12-11 15 views
6

sono diventato incredibilmente confuso su espressioni logiche a R. Il seguente comando mi dà il risultato previsto dal 1 è uguale a 1 o uguale a 2:O espressione in R

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

Ma d'altra parte io get:

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

Se qualcuno potesse dare qualche idea di ciò che sta accadendo qui sarei molto grato!

+3

Non si può usare 'o' con numerico .. nella prima istruzione' 1' interpunto come 'T' è possibile utilizzare'% in% 'o (3 == 3 | 3 == 4) – Batanichek

+0

Provare questi nella console : '(3 | 4)'; '(1 | 2)'; '1 == TRUE'; '1 == (3 | 4)'; '0 == FALSE'; '3 == FALSE'; '3 == TRUE', ecc. – eipi10

+2

Giusto per espandere ciò che @Batanichek ha detto,' TRUE' e 'FALSE' saranno interpretati come 1 e 0, rispettivamente, in un contesto numerico (ad esempio, prova' as.numeric (c (FALSE, TRUE)) 'o' sum (c (TRUE, TRUE)) '). Per operazioni logiche generali con numeri, puoi usare '% in%' (ad esempio, '3% in% c (3,4)'). – eipi10

risposta

0

Si prega di leggere i commenti sotto la domanda per spiegazioni. Credo che quello che si vuole veramente fare è:

1 == 1 | 1 == 2 

Questo è TRUE perché la prima prova è TRUE.

3 == 3 & 3 == 4 

Questo è FALSE perché il secondo test è FALSE e & richiede sia (o tutte) testa di essere TRUE.