본문 바로가기
R Basics

매트릭스

by Nowkeeh Ahc

매트릭스 개념

- 1차원 데이터: '몸무게' 데이터와 같은 단일 주제의 데이터 -> 벡터

- 2차원 데이터: '키', '몸무게', '나이'와 같은 여러 주제의 데이터

-> 매트릭스, 데이터 프레임

- 매트릭스(matrix); 데이터 테이블의 모든 셀의 값들이 동일한 자료형

- 데이터 프레임(Data Frame): 자료형이 다른 컬럼들로 구성

 

 

매트릭스 만들기

 

기본

2차원 테이블 형태의 자료구조로, 매트릭스의 모든 셀에 저장되는 값은 동일한 자료형이어야 한다.

z <- matrix(1:20, nrow=4, ncol=5)
z 				# 매트릭스 z의 내용을 출력

 

매트릭스에 저장될 값들을 행 방향으로 채우기

z2 <- matrix(1:20, nrow=4, ncol=5, byrow=TRUE)
z2 				# 매트릭스 z2의 내용을 출력

 

기존 매트릭스에 벡터를 추가하여 새로운 매트릭스 만들기

x <- 1:4 				# 벡터 x 생성 
y <- 5:8 				# 벡터 y 생성 
z <- matrix(1:20, nrow=4, ncol=5) # 매트릭스 z 생성 

m1 <- cbind(x,y) 		# x와 y를 열 방향으로 결합하여 매트릭스 생성 
m1 			# 매트릭스 m1의 내용을 출력 
m2 <- rbind(x,y) 		# x와 y를 행 방향으로 결합하여 매트릭스 생성 
m2 			# 매트릭스 m2의 내용을 출력 
m3 <- rbind(m2,x) 	# 매트릭스 m2와 벡터 x를 행 방향으로 결합 
m3 			# 매트릭스 m3의 내용을 출력 
m4 <- cbind(z,x) 		# 매트릭스 z와 벡터 x를 열 방향으로 결합 
m4 			# 매트릭스 m4의 내용을 출력

 

 

매트릭스에서의 값 추출

 

인덱스값을 이용하여 매트릭스에서의 값 추출

- 매트릭스에서 특정 위치에 있는 값을 추출하는 방법은 벡터와 유사

- 값들의 위치를 나타내는 인덱스를 사용하는데, 2차원상에서 위치를 지정하려면 2개 필요 (행렬)

z <- matrix(1:20, nrow=4, ncol=5)  	# 매트릭스 z 생성 
z 				# 매트릭스 z의 내용 출력 

z[2,3] 				# 2행 3열에 있는 값 
z[1,4] 				# 1행 4열에 있는 값 
z[2,] 				# 2행에 있는 모든 값 
z[,4] 				# 4열에 있는 모든 값

 

매트릭스에서 여러 개의 값을 동시에 추출

z <- matrix(1:20, nrow=4, ncol=5) 	# 매트릭스 z 생성 
z 				# 매트릭스 z의 내용 출력 

z[2,1:3] 				# 2행의 값 중 1~3열에 있는 값 
z[1,c(1,2,4)] 			# 1행의 값 중 1, 2, 4열에 있는 값 
z[1:2,] 				# 1, 2행에 있는 모든 값 
z[,c(1,4)] 				# 1, 4열에 있는 모든 값

 

 

매트릭스의 행과 열에 이름 지정

 

매트릭스의 행과 열에 이름을 지정하는 방법

score <- matrix(c(90,85,69,78, 
	          85,96,49,95, 
	          90,80,70,60), 
	          nrow=4, ncol=3) 
score 
rownames(score) <- c('John','Tom','Mark','Jane’) 
colnames(score) <- c('English','Math','Science’) 
score

 

행과 열에 지정한 이름을 이용하여 매트릭스값 추출

score['John','Math’] 			# John의 수학 성적 
score['Tom',c('Math','Science’)] 	# Tom의 수학, 과학 성적 
score['Mark’,] 			# Mark의 모든 과목 성적 
score[,'English’] 			# 모든 학생의 영어 성적 
rownames(score) 			# score의 행의 이름 
colnames(score) 			# score의 열의 이름 
colnames(score)[2] 			# score의 열의 이름 중 두 번째 값

 


This post was written based on what I read and studied the book below.

http://www.yes24.com/Product/Goods/92851804

댓글