[R데이터분석] 행렬, 배열
행렬과 배열
행렬: 행과 열로 구성된 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