본문 바로가기

R

[R프로그래밍] R의 데이터 유형 6가지 ( Vector, Factor, Matrix, Array, Data.Frame, List ) 알아보기

오늘은 R의 데이터 유형 6가지를 알아보도록 하겠습니다.



R의 데이터 유형 6가지 < Vector, Factor, Matrix, Array, Data.Frame, List >


1. Vector

< Vector 만들기 >

c, :, seq, sequence, rep


1. c(elements1, elements2, elements3, ...)

- 규칙이 없는 elements

- v1 <- c(10, 21)

- v2 <- c("치킨", "피자", "핫도그")

2. start : end

- 규칙이 있는 elements

- start 부터 end 까지 1씩 증가/감소

- 1:-2.3 , 1 0 -1 -2

3. sequence(from= , to= , by= )

- 규칙이 있는 elements

- from 부터 to 까지 by 의 간격으로

4. rep(vector, times= , each= )

- times : vector를 times 만큼 반복

- each : vector의 값들을 각각 each 만큼 반복


< Vector의 속성 >

length, names

1. length(vector)

- vector의 길이

2. names(vector)

- vector의 이름을 정의


< Vector의 Slicing >

- vector[1]

- vector[1, 2, 3, 4]

- vector[1:4]

- vector[seq()]


< Vector의 연산 >

- v1 <- 1:3

- v2 <- 1:8

- v1 + v2 ( => Vectorization, 벡터화 )

=> v1 : 1, 2, 3, 1, 2, 3, 1, 2 

=> v2 : 1, 2, 3, 4, 5, 6, 7, 8

=> Recyclig 규칙 적용됨. v1 이 반복됨


2. Factor

< Factor 만들기 >

factor(vector, lables= , levels= , ordered= )


1. lables

- vector에서의 집단의 이름을 표시

2. levels

- vector 집단의 순서를 표시

3. ordered

- True/False

- 순서형 자료 표시

- True 라고 입력하면, levels에 순서를 표시해줌

- default : False


< Factor의 속성 >

levels, mode


1. levels

- 벡터의 집단 조회

- 집단 이름은 문자형으로 나타나지만 실제로는 순서를 숫자로 저장하고 있음

- 숫자가 문자형보다 메모리를 덜 차지하기 떄문

2. mode

- 벡터의 데이터 유형 조회


3. Matrix

< Matrix 만들기 >

rbind, cbind, matrix


1. rbind(vector1, vector2, ...)

- elements 가로로 추가

- 추가 될 때 Recyclig 규칙 적용


2. cbind(vector1, vector2, ...)

- elements 세로로 추가

- 추가 될 때 Recyclig 규칙 적용


3. matrix(vector, nrow= , ncol= , byrow=TRUE)

- byrow : TRUE - 값을 가로로 채움, FALSE(DEFAULT) - 값을 세로로 채움


< Matrix Slicing >

- drop = FALSE : matrix의 형태 유지되어 slicing

- drop = TRUE (default) : vector형태로 slicing, matrix 형태 유지되지 않음 


< 전치행렬 >

- t(matrix)

- 행과 열을 바꿈


4. Array

< array 만들기 > 

1. array(vector, dim= )

- dim : 차원


2. ex)

- array(1:4, dim = 10) // 1차원 1, 2, 3, 4. 1. 2. 3. 4. 1. 2

- array(1:9, dim = c(3, 3)) // 2차원 1 4 7 값이 세로로 채워짐 

2 5 8

3 6 9

- array(1:9, dim = c(2, 3, 3))  // 3차원, 벡터화 됨


< array 속성 > 

- dim(array) : 차원을 구할 수 있음


5. Data.Frame

- 행과 열로 구성되어 있으며, 2차원 구조임

- 여러 개의 데이터 유형을 가짐

- 단, 하나의 열에는 하나의 데이터 유형만 가짐

- R에서의 기본적인 데이터 유형

- Recyclig Rule 이 작동하지 않음


< data.Frame 만들기 >

- data.Frame(vector, matrix) 


6. List

- 가장 유연한 형태의 데이터

- element로 모든 데이터 유형을 가질 수 있음

- vector, factor, matrix, array, data.frame 은 데이터유형이 달라도 element 사이즈는 다 같음

- list는 element 사이즈가 다 다를수 있음

-> vector(1) - factor(1) - data.frame(3,4)

- result[1] -> 결과값을 vector(1) 이 있는 list 로 반환

- result[[1]] -> 결과값을 vector(1)로 반환


< List 만들기 >

1. list(vector, factor, matrix, array, data.frame, list)

- result <- list(hobby, gender.factor, survey) // hobby : Vector, gender.factor : Factor, survey : Data.Frame

2. 결과값

- result[1] -> List로 반환

- result[[1]] -> Vector로 반환



틀린내용이 있거나, 궁금한점이 있으시면 댓글로 알려주세요 : )