9. Vector의 연산


r

Overview

R에서 Vector의 연산에 대해 알아본다.


Vector 자료형

Vector의 소개는 이 포스트의 Vector 문단에서 볼 수 있다.


Vector의 연산

x = c(1, 2, 3, 4, 5)
y = c(-1, -2, -3, -4, -5)

# x의 타입 확인하기
class( x )
# [1] "numeric"

# 더하기
result = x + y 
result 
# [1] 0 0 0 0 0

# 벡터의 곱 : 행렬이 된다.
# 1 * 1 + 2 * 2 + 3 * 3 + 4 * 4 + 5 * 5
result = x %*% x
result      

mode(result)

class(result) # "matrix"


# 벡터의 * 연산자는 각 요소간의 곱셉을 수행한다.
result = x * y 
result 
# [1]  -1  -4  -9 -16 -25

temp = c(x, y)
temp 
#  [1]  1  2  3  4  5 -1 -2 -3 -4 -5

class(temp)
# [1] "numeric"

# column binding : 행렬이 된다.
# x의 요소들을 1번째 수직으로 펼친다.
# y의 요소들을 2번째 수직으로 펼친다.
mat_c <- cbind(x, y) 
mat_c

# row binding : 행렬이 된다.
# x의 요소들을 1번째 수평으로 펼친다.
# y의 요소들을 2번째 수평으로 펼친다.
mat_r <- rbind(x, y) 
mat_r

# 행렬의 각 성분을 제곱하기

# 행렬의 * 연산자는 각 요소간의 곱셉을 수행한다.
# dim : 몇행 몇열인가?
dim(mat_r) # 2행 5열

# 전치 행렬 : 행렬의 행과 열을 서로 맞바꾼다.
mat_r_t = t(mat_r)
mat_r_t

dim(mat_r_t)

# 행렬의 곱 : 예시는 (2*5) %*% (5*2) --> (2*2)가 된다
result = mat_r %*% mat_r_t  
result

# 행렬의 차원 구하기
dim(result)

실행 결과

> x = c(1, 2, 3, 4, 5)
> y = c(-1, -2, -3, -4, -5)
> 
> # x의 타입 확인하기
> class( x )
[1] "numeric"
> # [1] "numeric"
> 
> # 더하기
> result = x + y 
> result 
[1] 0 0 0 0 0
> # [1] 0 0 0 0 0
> 
> # 벡터의 곱 : 행렬이 된다.
> # 1 * 1 + 2 * 2 + 3 * 3 + 4 * 4 + 5 * 5
> result = x %*% x
> result      
     [,1]
[1,]   55
> 
> mode(result)
[1] "numeric"
> 
> class(result) # "matrix"
[1] "matrix"
> 
> 
> # 벡터의 * 연산자는 각 요소간의 곱셉을 수행한다.
> result = x * y 
> result 
[1]  -1  -4  -9 -16 -25
> # [1]  -1  -4  -9 -16 -25
> 
> temp = c(x, y)
> temp 
 [1]  1  2  3  4  5 -1 -2 -3 -4 -5
> #  [1]  1  2  3  4  5 -1 -2 -3 -4 -5
> 
> class(temp)
[1] "numeric"
> # [1] "numeric"
> 
> # column binding : 행렬이 된다.
> # x의 요소들을 1번째 수직으로 펼친다.
> # y의 요소들을 2번째 수직으로 펼친다.
> mat_c <- cbind(x, y) 
> mat_c
     x  y
[1,] 1 -1
[2,] 2 -2
[3,] 3 -3
[4,] 4 -4
[5,] 5 -5
> 
> # row binding : 행렬이 된다.
> # x의 요소들을 1번째 수평으로 펼친다.
> # y의 요소들을 2번째 수평으로 펼친다.
> mat_r <- rbind(x, y) 
> mat_r
  [,1] [,2] [,3] [,4] [,5]
x    1    2    3    4    5
y   -1   -2   -3   -4   -5
> 
> # 행렬의 각 성분을 제곱하기
> 
> # 행렬의 * 연산자는 각 요소간의 곱셉을 수행한다.
> # dim : 몇행 몇열인가?
> dim(mat_r) # 2행 5열
[1] 2 5
> 
> # 전치 행렬 : 행렬의 행과 열을 서로 맞바꾼다.
> mat_r_t = t(mat_r)
> mat_r_t
     x  y
[1,] 1 -1
[2,] 2 -2
[3,] 3 -3
[4,] 4 -4
[5,] 5 -5
> 
> dim(mat_r_t)
[1] 5 2
> 
> # 행렬의 곱 : 예시는 (2*5) %*% (5*2) --> (2*2)가 된다
> result = mat_r %*% mat_r_t  
> result
    x   y
x  55 -55
y -55  55
> 
> # 행렬의 차원 구하기
> dim(result)
[1] 2 2





© 2019. by RaP0d

Powered by aiden