■ 프로그래밍/R
[R 기초] 데이터 유형 - Array, Data.Frame, List
hi_mj
2018. 8. 19. 14:55
[ R 데이터 유형 : Array, Data.Frame, List ]
# 주석
## 결과값
Data Type
- Vector ***
- Factor *
- Matrix
4. Array - Data Frame ***
- List *
(* 중요도)
4. Array
[특징]
- 3차원 이상의 다차원 구조
- 하나의 데이터 유형만 가짐
- Vector/Matrix의 확장
4.1 Array 만들기
array(vector, dim = )
- dim에 차원의 수, 1을 넣으면 array/vector, 2는 array/matrix
array(1:5, dim = 10) # 1차원 array/vector
array(1:5, dim = c(3,3)) # 2차원 array/matrix
array(1:5, dim = c(3, 3, 3)) # 3차원 array
Data Type
- Vector ***
- Factor *
- Matrix
- Array
5. Data Frame *** - List *
(* 중요도)
5. Data.Frame
[특징]
- 행과 열로 구성
- 2차원 구조
- 여러 개의 데이터 유형을 가질 수 있음
- 단, 하나의 열에는 하나의 데이터 유형만 가짐
- R에서 데이터는 기본적으로 Data.Frame 지칭
5.1 Data.Frame 만들기
data.frame(vector, factor, matrix)
id <- 1:6
gender <- c("M", "F", "M", "M", "M", "M")
age <- c(25, 23, 24, 28, 25, 35)
major <- c("컴퓨터공학", "호텔경영", "경제학", "컴퓨터공학", "IT응용공학", "경제학")
survey <- data.frame(id, gender, age, major)
survey
## id gender age major
## 1 1 M 25 컴퓨터공학
## 2 2 F 23 호텔경영
## 3 3 M 24 경제학
## 4 4 M 28 컴퓨터공학
## 5 5 M 25 IT응용공학
## 6 6 M 35 경제학
A <- cbind(id, gender, age, major) # 전부다 character로 바뀜, matrix는 하나의 유형만 가능
A
## id gender age major
## [1,] "1" "M" "25" "컴퓨터공학"
## [2,] "2" "F" "23" "호텔경영"
## [3,] "3" "M" "24" "경제학"
## [4,] "4" "M" "28" "컴퓨터공학"
## [5,] "5" "M" "25" "IT응용공학"
## [6,] "6" "M" "35" "경제학"
Data Type
- Vector ***
- Factor *
- Matrix
- Array
- Data Frame ***
6. List
( 중요도)
6. List
[특징]
- 가장 유연한 형태의 데이터
- 데이터 분석 결과 중의 일부를 저장할 때 사용
6.1 List 만들기
list(vector, factor, matrix, array, data.frame, list)
result <- list(major, A, survey) #chararcter vector, matrix, data.frame
result
## [[1]]
## [1] "컴퓨터공학" "호텔경영" "경제학" "컴퓨터공학" "IT응용공학"
## [6] "경제학"
##
## [[2]]
## id gender age major
## [1,] "1" "M" "25" "컴퓨터공학"
## [2,] "2" "F" "23" "호텔경영"
## [3,] "3" "M" "24" "경제학"
## [4,] "4" "M" "28" "컴퓨터공학"
## [5,] "5" "M" "25" "IT응용공학"
## [6,] "6" "M" "35" "경제학"
##
## [[3]]
## id gender age major
## 1 1 M 25 컴퓨터공학
## 2 2 F 23 호텔경영
## 3 3 M 24 경제학
## 4 4 M 28 컴퓨터공학
## 5 5 M 25 IT응용공학
## 6 6 M 35 경제학
6.2 List의 Slicing
- list[index]
- list[[index]]
result[1] # list
## [[1]]
## [1] "컴퓨터공학" "호텔경영" "경제학" "컴퓨터공학" "IT응용공학"
## [6] "경제학"
result[[1]] # vector
## [1] "컴퓨터공학" "호텔경영" "경제학" "컴퓨터공학" "IT응용공학"
## [6] "경제학"
result[[1]][3]
## [1] "경제학"
list의 slicing은 약간 특이하다.
list[1]의 경우 큰 묶음으로 같이 보여지며, list[[1]]의 경우 큰 묶음 안의 내용만을 보여준다.
list[[1]]은 vector형식이기에 vector의 slicing이 가능하다.
아래의 코딩을 직접 따라하면서 감을 잡아보는 것을 추천한다.
result[2] # list
result[[2]] # matrix
result[[2]][ , 2] # 행렬의 뒤에 [ , ]
result[3] # list
result[[3]] # data.frame