Powiel możliwe:
R: subset() logical-and operator for chaining conditions should be & not &&Jaka jest różnica między krótkimi (&, |) i długimi (&&, ||) formami operatorów logicznych AND, OR w R?
Jaka jest różnica między krótkimi (&
, |
) i długich (&&
, ||
) tworzy i, lub operatorów logicznych w R?
Na przykład:
x==0 & y==1
x==0 && y==1
x==0 | y==1
x==0 || y==1
zawsze używać krótkich form w moim kodu. Czy ma jakieś upośledzenia?
Być może warto byłoby dodać, że "||" i "&&" są preferowane w klauzulach if, gdy używana jest tylko pierwsza wartość. –
@lselzer ... ponieważ '||' i '&&' * zwarcie *, tj. Nie sprawdzają niepotrzebnie kolejnych klauzul. tj. "A || B || C' przestaje oceniać i zwraca 'TRUE', gdy tylko znajdzie element' TRUE', podczas gdy 'A && B && C' przestaje oceniać i zwraca' FALSE', jak tylko znajdzie element 'FALSE' ... to jest użyteczne w konstruktach takich jak 'if (! is.na (x) && x> 0)' ... –
@Max, subtelny punkt, ale '&&' nie zawsze zwraca 'TRUE' lub' FALSE'. Rozważ "TRUE && NA", które zwraca 'NA'. – nograpes