Eventuali duplicati:
R: subset() logical-and operator for chaining conditions should be & not &&Qual è la differenza tra le forme brevi (&, |) e lunghe (&&, ||) di AND, OR operatori logici in R?
Qual è la differenza tra (&&
, ||
) forme brevi (&
, |
) e lunghe di AND, OR operatori logici in R?
Ad esempio:
x==0 & y==1
x==0 && y==1
x==0 | y==1
x==0 || y==1
uso sempre le forme brevi nel mio codice. Ha degli handicap?
Forse sarebbe utile aggiungere che '||' e '&&' sono preferibili in clausole if quando viene utilizzato solo il primo valore. –
@lselzer ... perché '||' e '&&' * cortocircuito *, cioè non controllano le clausole successive inutilmente. cioè A || B || C' smette di valutare e restituisce 'TRUE' non appena trova un elemento' TRUE', mentre 'A && B && C' smette di valutare e restituisce' FALSE' non appena trova un elemento 'FALSE' ... questo è utile in costrutti come 'if (! is.na (x) && x> 0)' ... –
@Max, un punto sottile, ma '&&' non sempre restituisce 'TRUE' o' FALSE'. Considera 'TRUE && NA', che restituisce 'NA'. – nograpes