7l log

[R데이터분석] 행렬, 배열 본문

2022

[R데이터분석] 행렬, 배열

HAPAGO 2022. 4. 24. 17:18

행렬과 배열

행렬: 행과 열로 구성된 2차원 단일형데이터

배열: 행렬을 n차원으로 확대한 구조의 단일형 데이터

 

행렬 데이터 생성하기

Matrix( ) 함수 사용

matrix(벡터, nrow = 행 개수, n col = 열 개수)

x <- c(1, 2, 3, 4, 5, 6)

matrix(x)

#기본적으로 로 생성됩니다

[,1]

[1,] 1

[2,] 2

[3,] 3

[4,] 4

[5,] 5

[6,] 6

matrix(x, nrow = 2, ncol = 3)

#2행 3열

[,1] [,2] [,3]

[1,] 1 3 5

[2,] 2 4 6

matrix(x, nrow = 3, ncol = 2)

#3행 2열

[,1] [,2]

[1,] 1 4

[2,] 2 5

[3,] 3 6

 

결과 비교하기

matrix(x, nrow = 2, ncol = 3, byrow = T)

#2행 3열, 가로정렬

#**byrow = T : 가로정렬- 데이터를 왼쪽에서 오른쪽으로 채우기(열부터 채움)**

[,1] [,2] [,3]

[1,] 1 2 3

[2,] 4 5 6

 

Matrix의 데이터 조회하기

모든 컬럼과 로우는( 열과 행은) 데이터형이 동일해야 함

 

mat3 <-matrix(c(1,2,3,4), nrow=2, byrow=T)

#2행 -자동으로 2열, 가로정렬

mat3

[,1] [,2]

[1,] 1 2

[2,] 3 4

모든 행의 1 열 값을 출력합니다.

mat3[ ,1]

[1] 1 3

#1행의 모든 열 값을 출력합니다.

mat3[1,]

[1] 1 2

 

 

새로운 행과 열 추가하기 - rbind( ) , cbind( ) 사용

#rbind( ) 로 행 추가

mat4 <- rbind(mat4, c(11,12,13))

#행 추가된 mat4확인

mat4

[,1] [,2] [,3]

[1,] 1 2 3

[2,] 4 5 6

[3,] 7 8 9

[4,] 11 12 13

#마지막 행이 추가됨

 

#cbind( ) 로 열 추가

mat5 <- cbind(mat4, c('e','f'))

#열 추가된 mat4확인 mat5

[,1] [,2] [,3] [,4]

[1,] "1" "2" "3" "e"

[2,] "4" "5" "6" "f"

[3,] "7" "8" "9" "e"

[4,] "11" "12" "13" "f"

 

#마지막 열이 추가됨 ( 4개 값을 가져야 하므로(행 4개) 반복되어 표시됨)

 

#컬럼 이름 지정하기

#colnames() 함수사용

colnames(mat5)<- c('First','Second','Third', 'fourth')

mat5

First Second Third fourth

[1,] "1" "2" "3" "e"

[2,] "4" "5" "6" "f"

3,] "7" "8" "9" "e"

[4,] "11" "12" "13" "f"

 

 

배열 데이터 생성하기

array (변수명, dim = c(행 수, 열 수, 차원 수))

배열 생성하기

y <- c(1, 2, 3, 4, 5, 6) array(y, dim = c(2, 2, 3))

#2행 2열의 3차원 행렬 생성됨

, , 1

[,1] [,2]

[1,] 1 3

[2,] 2 4

, , 2

[,1] [,2]

[1,] 5 1

[2,] 6 2

, , 3

[,1] [,2]

[1,] 3 5

[2,] 4 6

 

array1 <- array(c(1:12), dim=c(4,3)) <- matrix처럼 2차원 배열입니다( 차원수 지정 x)

#array(변수 c를 1부터 12까지 배열하고,

dim = c(행, 열)) 로 행,열을 지정

array1

[,1] [,2] [,3]

[1,] 1 5 9

[2,] 2 6 10

[3,] 3 7 11

[4,] 4 8 12

array2 <- array(c(1:12), dim=c(2,2,3)) <- 3차원 배열을 생성합니다.

#array(변수 c를 1부터 12까지 배열하고,

dim = c(행, 열, 차원: 층)) 로 행,열을 지정

array2

, ,1 <-- 1 층입니다

[,1] [,2]

[1,] 1 3

[2,] 2 4

, , 2 <-- 2층 입니다

[,1] [,2]

[1,] 5 7

[2,] 6 8

, , 3 <-- 3 층입니다

[,1] [,2]

[1,] 9 11

[2,] 10 12

#x :1 , y : 1 ,z : 3 인 데이터를 조회 

array2[1,1,3]

>3층 1행 1열

[1] 9

Comments