2011-10-31 23 views

Respuesta

6

& y | - son elemento a elemento y se puede utilizar con operaciones vectoriales, mientras que, || y && siempre generar sola TRUE o FALSE

theck la diferencia:

> 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 

Así, && y || se utilizan comúnmente en if (condition) state_1 else state_2 declaraciones, como que trata de vectores de longitud 1

+0

Quizás sería útil agregar que '||' y '&&' se prefieren en las cláusulas if cuando solo se usa el primer valor. –

+3

@lselzer ... porque '||' y '&&' * cortocircuito *, es decir, no verifican las cláusulas siguientes innecesariamente. es decir, 'A || B || C' deja de evaluar y devuelve 'TRUE' tan pronto como encuentra un elemento' TRUE', mientras 'A && B && C' deja de evaluar y devuelve' FALSE' tan pronto como encuentra un elemento 'FALSE' ... esto es útil en construcciones tales como 'if (! is.na (x) && x> 0)' ... –

+0

@Max, un punto sutil, pero '&&' no siempre devuelve 'TRUE' o' FALSE'. Considere 'TRUE && NA', que devuelve' NA'. – nograpes

Cuestiones relacionadas