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