[R] R을 이용한 통계 분석 및 데이터 시각화 : 행렬

 정보

  • 업무명     : R을 이용한 통계 분석 및 데이터 시각화 : 행렬

  • 작성자     : 박진만

  • 작성일     : 2020-03-24

  • 설   명      :

  • 수정이력 :

 

 내용

[개요]

  • R은 통계 분석 및 시각화 등의 기능을 갖춘 프로그래밍 언어 내지 통계 분석 환경입니다. 

  • 통계 분석 기능으로 통계 검정, 선형 회귀 분석, 시계열 데이터 분석, 클러스터링 등을 지원하고 있습니다.

  • 또한 최신 논문에서 발표된 같은 새로운 기술도 R로 구현되는 경우가 많습니다.

  • 특히 시각화 기능으로 히스토그램, 막대 그래프, 선 그래프, 산포도, 나무 모양 그림이나 히트맵 등 기본적인 그래프가 기본으로 지원하고 있습니다.

  • 또한 ggplot2 등의 패키지를 사용하여 더 높은 수준의 그림을 가시화할 수 있습니다.

 

 

[특징]

  • 데이터를 이해하기 위해서 통계 분석 및 데이터 시각화가 요구되며 이 프로그램은 이러한 목적을 달성하기 위한 소프트웨어

     

[기능]

  • 데이터형 소개

 

[활용 자료]

  • 없음

 

[자료 처리 방안 및 활용 분석 기법]

  • 없음

 

[사용법]

  • 소스 코드 예시 참조

 

[사용 OS]

  • Windows 10

 

[사용 언어]

  • R v3.6.2

  • R Studio v1.2.5033

 

 소스 코드

  • R 행렬은 수학 행렬과 거의 같은 개념이다.

  • 즉 행과 열로 이루어진 2 차원 배열의 데이터이다.

  • 행렬에 대하여 행렬의 모든 요소가 동일한 특성을 가질 필요가있다.

  • 즉, 행렬에 포함되어있는 모든 요소는 같은 단위여야 한다. 또한, R은 행렬과 비슷한 것으로 데이터 프레임 이라는 개념이 존재한다.

  • 데이터 프레임은 행렬과 달리 열마다 다른 단위를 가질 수있다.

 

[행렬 만들기]

  • 행렬은 matrix함수를 이용하여 행렬의 열 수와 행 수를 지정하여 생성한다.

matrix(1:9, nrow = 3, ncol = 3)
##      [,1] [,2] [,3]
## [1,]    1    4    7
## [2,]    2    5    8
## [3,]    3    6    9

matrix(1:9, nrow = 3, ncol = 3, byrow = T)
##      [,1] [,2] [,3]
## [1,]    1    2    3
## [2,]    4    5    6
## [3,]    7    8    9

 

  • 그리고 행렬의 행과 열에 이름을 붙일 수 있다.

m <- matrix(1:12, nrow = 3, ncol = 4)

colnames(m) <- c("A", "B", "C", "D")
rownames(m) <- c("first", "second", "third")

m
##        A B C  D
## first  1 4 7 10
## second 2 5 8 11
## third  3 6 9 12

 

[행렬의 요소]

  • 행렬에서 요소를 꺼낼 때 대괄호를 사용하여 행과 열 개수를 지정한다. 

  • 행과 열 개수를 복수 지정하여 여러 요소를 꺼낼 수있다. 또한 행수만큼을 지정하여 열 수를 두 의미하는 경우는 지정된 행의 행 벡터를 얻을 수있다.

x <- matrix(c(1:16), nrow = 4, ncol = 4)
x
##      [,1] [,2] [,3] [,4]
## [1,]    1    5    9   13
## [2,]    2    6   10   14
## [3,]    3    7   11   15
## [4,]    4    8   12   16

x[3, 2]
## [1] 7

## x[3, ]
[1]  3  7 11 15

x[-3, ]
##      [,1] [,2] [,3] [,4]
## [1,]    1    5    9   13
## [2,]    2    6   10   14
## [3,]    4    8   12   16

x[c(1,2),c(3,4)]
##      [,1] [,2]
## [1,]    9   13
## [2,]   10   14

 

  • 행렬의 행과 열에 이름이있는 경우, 행 및 열 이름에서 요소를 추출할 수 있다.

m <- matrix(1:12, nrow = 3, ncol = 4)
colnames(m) <- c("A", "B", "C", "D")
rownames(m) <- c("first", "second", "third")

m[, "D"]
##  first second  third 
##     10     11     12

m[c("first", "second"), c("B", "C", "D")]
##        B C  D
## first  4 7 10
## second 5 8 11

 

[행렬의 계산]

입력 예시 의미
- -A 각 성분에 (-1)을 곱한다.역행렬을 계산하는 것은 아니다.
* A * B 각 성분을 개별적으로 곱을 취한다. 즉, a ij * b ij 를 계산하고있다. 행렬의 곱을 계산하는 것은 아니다.
%*% A %*% B 행렬 A와 행렬 B의 곱. 즉 Σa ij * b ji 을 계산한다.
+ A + B 행렬 A와 행렬 B의 합.
- A - B 행렬 A와 행렬 B의 차.

 

A <- matrix(1:9, 3, 3)
B <- matrix(1:9, 3, 3)

A + B
##     [,1] [,2] [,3]
## [1,]    2    8   14
## [2,]    4   10   16
## [3,]    6   12   18

A * B 
##      [,1] [,2] [,3]
## [1,]    1   16   49
## [2,]    4   25   64
## [3,]    9   36   81

A %*% B 
##      [,1] [,2] [,3]
## [1,]   30   66  102
## [2,]   36   81  126
## [3,]   42   96  150

 

  • 고유값과 역행렬 등은 R의 함수로 계산한다.
의미
rowSums(x) 행렬 x의 각 행의 총합
solSums(x) 행렬 x의 각 열의 합
rowMeans(x) 행렬 x의 각 행의 평균
colMeans(x) 행렬 x의 각 열의 평균
t(x) 행렬 x의 전치행렬
solve(x) 행렬 x의 역행렬
diag(n) n 행 n 열의 단위 행렬
diag(a1:an) 대각선 성분 (a 1 , a 2 , ..., a n )의 대각 행렬
x[upper.tri(x)] <- n 대각선 성분을 제외한 상위 삼각 성분을 모두 n으로 치환
x[lower.tri(x)] <- n 대각선 성분을 제외한 아래 삼각 성분을 모두 n으로 치환
sum(x^n) 행렬 x의 n 곱
crossprod(x) 행렬 x의 벡터 곱
crossprod(x,y) 행렬 x와 행렬 y의 내적
eigen(x) 행렬 x의 고유치와 고유 벡터
det(x) 행렬 x의 행렬식

 

[행렬의 결합]

  • 2 개의 행렬을 가로로 결합 할 때(열 결합)는 cbind함수를 사용한다. 

  • 2 개의 행렬을 수직으로 결합 할 때 (행 결합)은 rbind함수를 사용한다.

a <- matrix(1:9, 3, 3)
b <- matrix(11:19, 3, 3)

rbind(a, b)
##      [,1] [,2] [,3]
## [1,]    1    4    7
## [2,]    2    5    8
## [3,]    3    6    9
## [4,]   11   14   17
## [5,]   12   15   18
## [6,]   13   16   19

cbind(a, b)
##      [,1] [,2] [,3] [,4] [,5] [,6]
## [1,]    1    4    7   11   14   17
## [2,]    2    5    8   12   15   18
## [3,]    3    6    9   13   16   19

 

[다음글]

 

[R] R을 이용한 통계 분석 및 데이터 시각화 : 데이터 프레임

정보 업무명 : R을 이용한 통계 분석 및 데이터 시각화 : 데이터 프레임 작성자 : 박진만 작성일 : 2020-03-25 설 명 : 수정이력 : 내용 [개요] R은 통계 분석 및 시각화 등의 기능을 갖춘 프로그래밍 언어 내지..

shlee1990.tistory.com

 

[이전글]

 

[R] R을 이용한 통계 분석 및 데이터 시각화 : 벡터

정보 업무명 : R을 이용한 통계 분석 및 데이터 시각화 : 벡터 작성자 : 박진만 작성일 : 2020-03-24 설 명 : 수정이력 : 내용 [개요] R은 통계 분석 및 시각화 등의 기능을 갖춘 프로그래밍 언어 내지 통계 분석..

shlee1990.tistory.com

 

 참고 문헌

[논문]

  • 없음

[보고서]

  • 없음

[URL]

  • 없음

 

 문의사항

[기상학/프로그래밍 언어]

  • sangho.lee.1990@gmail.com

[해양학/천문학/빅데이터]

  • saimang0804@gmail.com

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

본 블로그는 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음