반응형
4. 연산자
연산자는 산술적, 논리적 연산을 위한 것이다. R에는 아래와 같은 연산자들이 있다.
- 산술 연산자 (Arithmetic Operators)
- 관계 연산자 (Relational Operators)
- 논리 연산자 (Logical Operators)
- 할당 연산자 (Assignment Operators)
- 기타 연산자
산술 연산자
Operator | Description | Example |
---|---|---|
+ | 두 벡터를 더함 |
[1] 10.0 8.5 10.0 |
− | 두 벡터를 뺌 |
[1] -6.0 2.5 2.0 |
* | 두 벡터를 곱함 | v <- c( 2,5.5,6) t <- c(8, 3, 4) print(v*t) [1] 16.0 16.5 24.0 |
/ | 두 벡터를 나눔 | v <- c( 2,5.5,6) t <- c(8, 3, 4) print(v/t) [1] 0.250000 1.833333 1.500000 |
%% | 두 벡터를 나눈 후 나머지 | v <- c( 2,5.5,6) t <- c(8, 3, 4) print(v%%t) [1] 2.0 2.5 2.0 |
%/% | 나눗셈의 몫 | v <- c( 2,5.5,6) t <- c(8, 3, 4) print(v%/%t) [1] 0 1 1 |
^ | 지수 | v <- c( 2,5.5,6) t <- c(8, 3, 4) print(v^t) [1] 256.000 166.375 1296.000 |
관계 연산자
Operator | Description | Example |
---|---|---|
> | 왼쪽에 있는 벡터의 엘리먼트가 오른쪽에 있는 벡터의 엘리먼트보다 큰지를 체크한다. | v <- c(2,5.5,6,9) t <- c(8,2.5,14,9) print(v>t) [1] FALSE TRUE FALSE FALSE |
< | 오른쪽에 있는 벡터의 엘리먼트가 왼쪽에 있는 벡터의 엘리먼트보다 큰지를 체크한다. | v <- c(2,5.5,6,9) t <- c(8,2.5,14,9) print(v < t) [1] TRUE FALSE TRUE FALSE |
== | 벡터들의 엘리먼트들이 같은지를 체크한다. | v <- c(2,5.5,6,9) t <- c(8,2.5,14,9) print(v == t) [1] FALSE FALSE FALSE TRUE |
<= | 왼쪽에 있는 벡터들의 엘리먼트가 오른쪽에 있는 벡터의 엘리먼트보다 작거나 같은지를 체크한다. | v <- c(2,5.5,6,9) t <- c(8,2.5,14,9) print(v<=t) [1] TRUE FALSE TRUE TRUE |
>= | 왼쪽에 있는 벡터들의 엘리먼트가 오른쪽에 있는 벡터의 엘리먼트보다 크거나 같은지를 체크한다. | v <- c(2,5.5,6,9) t <- c(8,2.5,14,9) print(v>=t) [1] FALSE TRUE FALSE TRUE |
!= | 벡터들의 엘리먼트가 다른지를 체크한다. 다르면 TRUE, 같으면 FALSE | v <- c(2,5.5,6,9) t <- c(8,2.5,14,9) print(v!=t) [1] TRUE TRUE TRUE FALSE |
논리 연산자
논리 연산자는 logical, numeric, complex 타입의 벡터에만 적용 가능하며, numeric이나 complex 타입에 적용될 경우 1보다 큰 모든 수들은 TRUE라고 간주된다. 즉, 논리 연산자는 0과 1을 대상으로 적용된다.
Operator | Description | Example |
---|---|---|
& | &은 element-wise AND 이다. 각 원소별로 AND 연산을 적용한 결과를 만든다. | v <- c(3,1,TRUE,2+3i) t <- c(4,1,FALSE,2+3i) print(v&t) [1] TRUE TRUE FALSE TRUE |
| | &은 element-wise OR 이다. 각 원소별로 OR연산을 적용한 결과를 만든다. | v <- c(3,0,TRUE,2+2i) t <- c(4,0,FALSE,2+3i) print(v|t) [1] TRUE FALSE TRUE TRUE |
! | element-wise NOT 이다. | v <- c(3,0,TRUE,2+2i) print(!v) [1] FALSE TRUE FALSE FALSE |
&, | 연산자가 element-wise 연산자인 반면, &&과 ||은 벡터의 첫번째 element 끼리 논리 연산을 적용한다.
Operator | Description | Example |
---|---|---|
&& | 벡터의 첫번째 원소끼리 & 연산한 값 | v <- c(3,0,TRUE,2+2i) t <- c(1,3,TRUE,2+3i) print(v&&t) [1] TRUE |
|| | 벡터의 첫번째 원소끼리 | 연산한 값 | v <- c(0,0,TRUE,2+2i) t <- c(0,3,TRUE,2+3i) print(v||t) [1] FALSE |
할당 연산자
벡터에 값을 할당할 때 쓰이는 연산자이다.
Operator | Description | Example |
---|---|---|
<− or = or <<− | 왼쪽에 있는 변수에 값을 할당한다. | v1 <- c(3,1,TRUE,2+3i) v2 <<- c(3,1,TRUE,2+3i) v3 = c(3,1,TRUE,2+3i) print(v1) print(v2) print(v3) [1] 3+0i 1+0i 1+0i 2+3i [1] 3+0i 1+0i 1+0i 2+3i [1] 3+0i 1+0i 1+0i 2+3i |
-> or ->> | 오른쪽에 있는 변수에 값을 할당한다. | c(3,1,TRUE,2+3i) -> v1 c(3,1,TRUE,2+3i) ->> v2 print(v1) print(v2) [1] 3+0i 1+0i 1+0i 2+3i [1] 3+0i 1+0i 1+0i 2+3i |
기타 연산자
이 연산자는 일반적인 논리, 산술 연산자가 아니며, 특수한 상황에서 쓰이는 연산자이다.
Operator | Description | Example |
---|---|---|
: | 숫자의 시퀀스를 생성하는 연산자 | v <- 2:8 print(v) [1] 2 3 4 5 6 7 8 |
%in% | 엘리멘터가 벡터에 속해있는지를 체크하는 연산자 | v1 <- 8 v2 <- 12 t <- 1:10 print(v1 %in% t) print(v2 %in% t) [1] TRUE [1] FALSE |
%*% | 행렬을 그것의 transpose와 행렬곱셈을 할 때 쓰인다. | M = matrix( c(2,6,5,1,10,4), nrow = 2,ncol = 3,byrow = TRUE) t = M %*% t(M) print(t) [,1] [,2] [1,] 65 82 [2,] 82 117 |
아래 튜토리얼을 참고한 포스팅입니다.
반응형
'Tools > R' 카테고리의 다른 글
R - (6) 반복문 (0) | 2017.02.17 |
---|---|
R - (5) If, else if, switch (0) | 2017.02.15 |
R - (3) 변수 (0) | 2017.02.15 |
R - (2) R의 데이터 타입 (자료구조) (0) | 2017.02.13 |
R - (1) Introduction (0) | 2017.02.13 |