2011-10-31 5 views

risposta

6

& e | - sono elemento-saggio e può essere utilizzato con le operazioni vettoriali, mentre, || e && generare sempre unico TRUE o FALSE

theck la differenza:

> x <- 1:5 
> y <- 5:1 
> (x > 2) & (y < 3) 
    [1] FALSE FALSE FALSE TRUE TRUE 
> (x > 2) && (y < 3) # here operaand && takes only 1'st elements from logical 
        # vectors (x>2) and (y<3) 
> FALSE 

Così, && e || sono comunemente utilizzati nelle istruzioni if (condition) state_1 else state_2, come che si riferiscono a vettori di lunghezza 1

+0

Forse sarebbe utile aggiungere che '||' e '&&' sono preferibili in clausole if quando viene utilizzato solo il primo valore. –

+3

@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)' ... –

+0

@Max, un punto sottile, ma '&&' non sempre restituisce 'TRUE' o' FALSE'. Considera 'TRUE && NA', che restituisce 'NA'. – nograpes

Problemi correlati