[R] 벡터 연산

R 2016. 2. 17. 20:48


+, -와 같은 단순한 값 연산이 가능하다.


> x <- 2

> y <- 2

> z <- x + y

> z

[1] 4



벡터에 대한 조건문을 실행할 수 있다. 

> x <- 1:4

> x > 3

[1] FALSE FALSE FALSE  TRUE

> x == 10

[1] FALSE FALSE FALSE FALSE

> x == 1

[1]  TRUE FALSE FALSE FALSE



두 벡터의 합을 구할 수 있다.

> x <- 10:20

> x

 [1] 10 11 12 13 14 15 16 17 18 19 20

> y <- 30:40

> y

 [1] 30 31 32 33 34 35 36 37 38 39 40

> z <- x + y

> y <- 30:40

> x <- 10:20

> z

 [1] 40 42 44 46 48 50 52 54 56 58 60



java, c, c++같은 구조 지향적 언어라면 아래와 같이 개발할 수 있는데, R의 벡터 연산이 무척 편리하다. 

> for (i in seq_along(x)) {

+ }

> z[i] <- x[i] + y[i]

> z

 [1] 40 42 44 46 48 50 52 54 56 58 60



행렬도 벡터 연산을 할 수 있다.

> x <- matrix(1:4, 2, 2)

> x

     [,1] [,2]

[1,]    1    3

[2,]    2    4

> y <- matrix(2:5, 2, 2)

> y

     [,1] [,2]

[1,]    2    4

[2,]    3    5

> z <- x * y

> z

     [,1] [,2]

[1,]    2   12

[2,]    6   20

> z <- x / y

> z

          [,1] [,2]

[1,] 0.5000000 0.75

[2,] 0.6666667 0.80



그러나 list는 쉽게 되지 않는다.

> x <- list(1, 2)

> y <- list(3, 4)

> z <- x + y

Error in x + y : 이항연산자에 수치가 아닌 인수입니다




Posted by '김용환'
,