[사용 함수]
함수명 | 설명 |
matrix() | 행렬 데이터 만들기 |
dim() | 행렬의 차원 반환 또는 지정(행, 열 순으로) |
cbind() | 열 추가 |
rbind() | 행 추가 |
colnames() | 열 이름 지정 |
rownames() | 행 이름 지정 |
length() | 데이터 개수 반환 |
NROW() | 행 수 반환 (벡터도 1column matrix로 인식) |
NCOL() | 열 수 반환 (벡터도 1column matrix로 인식) |
nrow() | 행 수 반환 (벡터에서는 NULL) |
ncol() | 열 수 반환 (벡터에서는 NULL) |
[행렬]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | > # matrix > # 여러개의 동일한 형태의 데이터를 모아서 행과열의 형태로 함께 저장 > mat1 <- matrix(c(1,2,3,4)) ; mat1 #기본적으로 열이 우선 [,1] [1,] 1 [2,] 2 [3,] 3 [4,] 4 > mat2 <- matrix(c(1,2,3,4),nrow=2) ; mat2 #행 개수 2개 지정. [,1] [,2] [1,] 1 3 [2,] 2 4 > mat2 <- matrix(1:4,ncol=2); mat2 # 열 개수 2개 지정 [,1] [,2] [1,] 1 3 [2,] 2 4 > mat3 <- matrix(c(1,2,3,4),nrow=2,byrow=T) ; mat3 # 행 우선 [,1] [,2] [1,] 1 2 [2,] 3 4 > mat4 <- matrix(c(1:9),nrow=4,byrow=T) ; mat4 Warning message: In matrix(c(1:9), nrow = 4, byrow = T) : data length [9] is not a sub-multiple or multiple of the number of rows [4] [,1] [,2] [,3] [1,] 1 2 3 [2,] 4 5 6 [3,] 7 8 9 [4,] 1 2 3 | cs |
[행렬 데이터 제어]
1 2 3 4 5 6 7 8 9 10 11 12 13 | > # 행렬 데이터 제어 > mat3[ ,1] # 모든 행의 1 열 값을 벡터 형태로 가져옴 [1] 1 3 > mat3[1,] # 1행의 모든 열 값을 벡터 형태로 가져옴 [1] 1 2 > mat3[1,1] # 1행 1열의 값을 출력 [1] 1 > mat3[c(1,1)] # mat3[1]을 두 개 출력 [1] 1 1 > mat4[c(2,4),c(1,3)] # 2,4행과 1,3열이 만나는 행렬 [,1] [,2] [1,] 4 6 [2,] 1 3 | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | > # dim() 함수 > dim(mat3) # 행렬의 차원 반환 (행,열 순으로) [1] 2 2 > > #순환 재활용 > mat7<-matrix(7,nrow=3,ncol=4); mat7 [,1] [,2] [,3] [,4] [1,] 7 7 7 7 [2,] 7 7 7 7 [3,] 7 7 7 7 > mat7<-matrix(rep(7,12),nrow=3); mat7 [,1] [,2] [,3] [,4] [1,] 7 7 7 7 [2,] 7 7 7 7 [3,] 7 7 7 7 > > #값을 먼저 채우고 차원을 지정 > mat8<-matrix(rep(7,12)) > dim(mat8)<-c(3,4) > mat8 [,1] [,2] [,3] [,4] [1,] 7 7 7 7 [2,] 7 7 7 7 [3,] 7 7 7 7 | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | > # rbind() 함수 > mat4 <- matrix(c(1:9),nrow=3,byrow=T) ; mat4 [,1] [,2] [,3] [1,] 1 2 3 [2,] 4 5 6 [3,] 7 8 9 > mat4 <- rbind(mat4,c(11,12,13)) ; mat4 #행 추가 [,1] [,2] [,3] [1,] 1 2 3 [2,] 4 5 6 [3,] 7 8 9 [4,] 11 12 13 > > # cbind() 함수 > mat5 <- matrix(c("a","b","c","d"),nrow=2,byrow=T) ; mat5 [,1] [,2] [1,] "a" "b" [2,] "c" "d" > mat5 <- cbind(mat5,c('e','f')) ;mat5 # 열 추가 [,1] [,2] [,3] [1,] "a" "b" "e" [2,] "c" "d" "f" > mat5<-cbind(mat5,c("g","h"))[,c(1,2,4,3)];mat5 # 열 순서 바꾸기 [,1] [,2] [,3] [,4] [1,] "a" "b" "g" "e" [2,] "c" "d" "h" "f" > mat5<-mat5[,c(1,2,4)]; mat5 # 3열 삭제 [,1] [,2] [,3] [1,] "a" "b" "e" [2,] "c" "d" "f" | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | > # colnames(), rownames() 함수 > colnames(mat5) <- c('First','Second','Third') ; mat5 #열이름 지정 First Second Third [1,] "a" "b" "e" [2,] "c" "d" "f" > rownames(mat5) <- c("James", "Rylee") ; mat5 #행이름 지정 First Second Third James "a" "b" "e" Rylee "c" "d" "f" > > # length(), NROW(), NCOL(), nrow(), ncol() 함수 > length(mat5) # 데이터 개수 반환 [1] 6 > NROW(mat5) # 행 수 반환 [1] 2 > NCOL(mat5) # 열 수 반환 [1] 3 > nrow(mat5) # 행 수 반환 [1] 2 > ncol(mat5) # 열 수 반환 [1] 3 > > #NROW, nrow 의 차이 > #NROW는 벡터도 1열 매트릭스로 인식 > vec1<-c(1,2,3); vec1 [1] 1 2 3 > length(vec1) [1] 3 > NROW(vec1) # 1column matrix로 생각함. [1] 3 > NCOL(vec1) # 1column matrix로 생각함. [1] 1 > nrow(vec1) # 벡터에서는 NULL NULL > ncol(vec1) # 벡터에서는 NULL NULL | cs |
출처 - 경영프로그래밍 강의 자료 (양성병 교수님)
'IT,인터넷 관련 학습 > R언어 학습' 카테고리의 다른 글
[R] 리스트 (List) (0) | 2019.05.11 |
---|---|
[R] 배열 (Array) (0) | 2019.05.11 |
[R] 벡터 (Vector) (0) | 2019.05.11 |
[R] R 자료형 (Data Type) (0) | 2019.05.11 |
빅데이터 통계학 (4) (0) | 2019.04.05 |