R/R 기초

[R 기초] 데이터 구조와 유형

Jenny Noh 2023. 10. 4. 19:44

01. 데이터 세트 구조: Data object type

데이터 셋 (Data Set)이란 데이터의 집합니다. 

데이터를 어떤 구조로 저장하느냐에 따라 아래와 같이 5가지 형태로 정의된다.

 

1) 벡터 (vector)

벡터는 1차원 구조의 단일형 (=한 가지 데이터 유형으로 구성된) 데이터이다.

벡터를 생성하기 위해서는 c( ) 함수 (combine 함수)를 사용한다.

 

 

기본 형태

변수명 <- c()

 

예시 1: 숫자형 벡터 생성

vector_num <- c(1, 2, 3)

: 'vector_num' 라는 변수에  숫자형 데이터 1, 2, 3 을 할당하는 코드이다.

 

예시 2: 문자형 벡터 생성

vector_char <- c("a", "b", "c")

: 'vector_char' 이라는 변수에 문자형 데이터 a, b, c를 할당하는 코드이다.

  이 때, "" 나 '' 안에 값을 넣으면 그 값을 문자형으로 인식한다. 

  c('1', '2', '3')은 문자형 벡터다. 

 

 

 

2) 행렬 (matrix)

행렬은 2차원 구조의 단일형 데이터이다.

행렬을 생성하기 위해서는 먼저 벡터 데이터를 생성하고 matrix( ) 함수를 사용하여 행렬의 형태로 변환한다.

 

 

기본 형태

matrix(벡터, nrow = 행 개수, ncol = 열 개수)

 

예시 1: 행과 열 개수 정의하여 행렬 생성

x <- c(1, 2, 3, 4, 5, 6)
matrix(x, nrow = 2, ncol = 3)
matrix(x, nrow = 3, ncol = 2)

: 'x' 변수에 벡터 c(1, 2, 3, 4, 5, 6)을 할당하고, 행이 2개 열이 3개인 행렬과 행이 3개 열이 2개인 행렬을 각각 생성하는 코드이다.

 

결과값은 아래와 같이 반환된다. 

 

예시 2: 'byrow = T' 옵션으로 행 방향으로 데이터 채우기

x <- c(1, 2, 3, 4, 5, 6)
matrix(x, nrow = 2, ncol = 3)
matrix(x, nrow = 2, ncol = 3, byrow = T)

: matrix 함수의 기본 옵션은 데이터가 열 방향 (위에서 아래로) 채워진다는 것이다. 

데이터를 왼쪽에서 오른쪽으로 횡단하는 방향으로 채우고 싶다면, byrow = T 옵션을 사용하면 된다. 

 

결과값은 아래와 같이 반환된다.

 

 

 

3) 배열 (array)

배열은 다차원 (2차원 이상)의 단일형 데이터 구조이다.

배열은 array( ) 함수를 이용하여 생성한다.

 

 

기본 형태

array(변수명, dim = c(행 수, 열 수, 차원 수)

 

예시

y <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
array(y, dim = c(2, 2, 3))

: 변수 'y'에 벡터 c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)를 할당하고, 이를 행 2개, 열2개의 3차원 배열로 생성하는 코드이다.

 

결과값은 아래와 같이 반환된다.

 

 

 

4) 리스트 (list)

리스트는 1차원의 다중형 데이터 (= 여러 데이터 형 포함)의 가장 복잡한 형태의 데이터 유형이다.

리스트는 (벡터, 행렬, 배열, 데이터프레임, 리스트 등) 여러 객체들의 모음으로 구성될 수 있다.

소위 말해 가리지 않고 다 먹는 데이터유형이다.

 

리스트는 출력할 때 데이터형별로 구분하여 출력된다.

리스트를 생성하기 위해 list( ) 함수를 사용한다. 

 

 

기본 형태

list(데이터 1, 데이터 2, 데이터 3, ...)

 

예시

list(c(1, 2, 3), "Hello")

: 숫자형 벡터 c(1, 2, 3)문자형 데이터 "Hello"가 포함된 리스트를 생성하는 코드이다.

 

결과값은 아래와 같이 반환된다.

벡터와 문자형 데이터로 구분되어 반환된다.

 

 

 

5) 데이터 프레임 (dataframe)

데이터 프레임은 2차원의 다중형 데이터이다.

실제로 가장 많이 사용되는 데이터 유형으로 엑셀의 시트, 일반적인 테이블 형태로 생각하면 쉽다.

행렬과 다른 점은 각 열에 변수명이 있다는 것이다. 

데이터 프레임 생성 시에는 data.frame( ) 함수를 사용한다. 

 

 

기본 형태

data.frame(변수명 1, 변수명 2, ..., 변수명 n)

 

예시

ID <- c(1, 2, 3, 4, 5)
CLASS <- c(1, 1, 1, 2, 3)
RSCORE <- c(100, 90, 65, 70, 30)
GRADE <- c("A", "A", "D", "C", "F")

data.frame(ID, CLASS, RSCORE, GRADE)

: 변수명ID, CLASS, RSCORE, GRADE에 각각의 벡터값을 할당하고, 이를 데이터 프레임 형태로 조합하는 코드이다.

 

결과값은 아래와 같이 반환된다.

 

 

 

02. 데이터 유형에 따른 분류

단일형 데이터

단일형 데이터는 숫자 또는 문자형과 같이 한 가지의 동일한 데이터 유형으로 구성된 데이터이다. 

벡터, 행렬, 배열이 해당된다. 

 

다중형 데이터

다중형 데이터는 여러가지 데이터의 유형으로 구성된 데이터이다.

리스트와 데이터 프레임이 이에 해당된다. 

 

 

 

범주형 데이터 

범주형 데이터는 명목형 데이터를 범주화한 데이터이다.

위의 정의는 나도 이해하기가 어렵다..🥲

그냥 종류를 나타내는 데이터라고 이해하면 쉽다.

 

예시

  • 과일: apple, banana, cherry ...
  • 나라명: Korea, Canada, Japan ...
  • 월: 1월, 2월, 3월 ...
  • 반: 1반, 2반, 3반 ...

 

 

수치형 데이터

수치형 데이터는 순서가 존재하는 정수형, 실수형의 자료로, 범주형 데이터와 상반되는 개념이다.