4.9 연산자 우선 순위와 결합

4.9.1 연산자 우선 순위

단일 표현식에서 여러 연산자를 사용하는 경우 발생할 작업 순서를 파악하려면 이러한 연산자의 우선 순위를 알아야 합니다.

우선 순위는 실행 순서, 즉 어떤 연산자가 더 높은 우선 순위를 갖는지 정의합니다.

4.9.1.1 예제 1 : R의 연산자 우선 순위

2 + 6 * 5              # 2 + ( 6 * 5 )
## [1] 32

여기서 * 연산자는 + 보다 우선 순위가 높으므로2 + 6 * 52 + (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