[R] R의 Data Structure
[R] R의 Data structure
데이터 구조 종류
-
Scalar : element가 1개인 vector이다.
1# scalar 만들기 2a <- 'a' 3alphabet <- 'abcdefg' 4num <- 1
-
Vector : 같은 종류의 element가 여러개 들어 있는 1차원 matrix이다.
1# vector 만들기 2table <- c('a', 'b') 3table <- c(1, 2, 3, 5) 4bool <- c(TRUE, FALSE)
-
Matrix : 2차원으로 된 배열. 일반적이 표 데이터를 생각하면 된다.
1# matrix 만들기 2# 2 by 3 행렬 생성 3> mat <- matrix(c("a", "b", "c", "d", "e", "f"), nrow = 2, ncol = 3) 4> mat 5 [,1] [,2] [,3] 6[1,] "a" "c" "e" 7[2,] "b" "d" "f"
-
Array : 차원이 matrix 보다 많다. Matrix는 2차원(행, 열)인데 비해 배열은 그 이상 차원이 형성될 수 있다.
1# array 만들기 2> animal <- c("dog", "cat", "rabbit") 3> feed <- c("meat", "fish", "carrot") 4> jump <- c("3", "2", "1") 5> arr <- array(data = c(animal, feed, jump), dim = c(1,3,3), dimnames = list('value', c(1, 2, 3), c('animal','feed','jump'))) 6 7# array(c(vector1, vector2, vector3), dim = c(1,3,3), dimnames = list(row.names, column.names, matrix.names)) 8 9> arr 10, , animal 11 12 1 2 3 13value "dog" "cat" "rabbit" 14 15, , feed 16 17 1 2 3 18value "meat" "fish" "carrot" 19 20, , jump 21 22 1 2 3 23value "3" "2" "1"
-
Data Frame : matrix와 유사한데, 유형이 다른 데이터를 함께 넣을 수 있다.
1> animal <- c("dog", "cat", "rabbit") 2> feed <- c("meat", "fish", "carrot") 3> jump <- c("3", "2", "1") 4> dat <- data.frame(animal, feed, jump) 5> dat 6 animal feed jump 71 dog meat 3 82 cat fish 2 93 rabbit carrot 1
-
List :서열화된 성분들의 집합체이다. 예시를 보는 게 빠르다.
1> title <- "Phone Book" 2> name <- c("Tom", "Jack", "Jean", "Mike") 3> phone <- c("010-1234-1234", "010-2345-5678", "010-9876-5673") 4> index <- c(1, 2, 3) 5> etc <- matrix(1:10, nrow=2) 6 7> mylist <-list(title = title, info = name, phone, index, etc) 8> mylist 9$title 10[1] "Phone Book" 11 12$info 13[1] "Tom" "Jack" "Jean" "Mike" 14 15[[3]] 16[1] "010-1234-1234" "010-2345-5678" "010-9876-5673" 17 18[[4]] 19[1] 1 2 3 20 21[[5]] 22 [,1] [,2] [,3] [,4] [,5] 23[1,] 1 3 5 7 9 24[2,] 2 4 6 8 10 25 26> mylist$title 27[1] "Phone Book" 28 29> mylist[[3]] 30[1] "010-1234-1234" "010-2345-5678" "010-9876-5673" 31 32> mylist$info[1] 33[1] "Tom"