4.9 연산자 우선 순위와 결합
4.9.1 연산자 우선 순위
단일 표현식에서 여러 연산자를 사용하는 경우 발생할 작업 순서를 파악하려면 이러한 연산자의 우선 순위를 알아야 합니다.
우선 순위는 실행 순서, 즉 어떤 연산자가 더 높은 우선 순위를 갖는지 정의합니다.
4.9.1.1 예제 1 : R의 연산자 우선 순위
2 + 6 * 5 # 2 + ( 6 * 5 )
## [1] 32
여기서 *
연산자는 +
보다 우선 순위가 높으므로2 + 6 * 5
는 2 + (6 * 5)
로 해석됩니다. 이 순서는 괄호 ()
를 사용하여 변경할 수 있습니다.
2 + 6) * 5 (
## [1] 40
4.9.2 연산자 결합
표현식에서 우선 순위가 동일한 여러 연산자를 사용할 수 있습니다. 이 경우 실행 순서는 연산자 결합(associativity)을 통해 결정됩니다.
R에서 다른 연산자의 우선 순위와 결합은 다음의 표와 같습니다.
연산자 | 설 명 | 연관성 |
---|---|---|
^ |
제곱 | Right to Left |
- x, + x |
Unary minus, Unary plus | ==> |
%% |
Modulus | ==> |
* , \ |
Multiplication, Division | ==> |
+ , – |
Addition, Subtraction | ==> |
< , > , <= , >= , == , != |
Comparisions | ==> |
! |
Logical NOT | ==> |
& , && |
Logical AND | ==> |
| , || |
Logical OR | ==> |
-> , ->> |
Rightward assignment | ==> |
<- , <<- |
Leftward assignment | <== |
= |
Leftward assignment | <== |
대부분이 왼쪽에서 오른쪽 방향으로의 결합되고 있음을 알 수 있습니다.
4.9.2.1 예제 2 : R의 연산자 결합
3 / 4 / 5
## [1] 0.15
위의 예에서 3 / 4 / 5
는 /
연산자의 왼쪽에서 오른쪽 방향으로 결합됨으로 (3 / 4) / 5
로 평가됩니다. 그러나이 순서도 괄호 ()를 사용하여 변경할 수 있습니다.
3 / (4 / 5)
## [1] 3.75