R에서는 전통적으로 분석 데이터셋을 데이터 프레임으로 정의하여 사용합니다. 허나 데이터 프레임 구조의 유용했던 기능들이 현대에 들어 그렇지 않은 경우가 많습니다. Tidyverse 생태계는 데이터 프레임 구조를 Tidy data의 기조에 맞게 tibble이란 데이터 구조를 새로 구축했는데, 해당 포스트에서는 tibble을 생성하고 관리하는 방법에 대해 알아보겠습니다. 

 

34.1. 티블(tibble)의 정의와 특징

더보기

(1) 티블의 정의

티블이란 데이터프레임과 근본적으로 차이는 없으나, 데이터프레임의 불필요한 파라미터(StringAsFactor, 등)의 동작을 제거한 객체입니다. 예를 들어, iris 데이터셋을 티블로 불러올 때는 as_tibble() 함수를 이용하는데, 코드는 다음과 같습니다. 

library(tidyverse)
iris_tbl <- as_tibble(datasets::iris) 
iris_tbl

기존의 데이터프레임과는 달리 티블 구조에서 조회할 때 컬럼 별로 라벨이 붙어 있음을 확인할 수 있습니다. 

 

PLUS) 티블 내 라벨의 정의

라벨 네임 라벨 풀네임 의미 예시
<chr> character 문자형 데이터 "Data", "Analytics", "With", "R", ∙∙∙
<int> integer 정수형 데이터 -7, -1, 0, 2, 6, 34, ∙∙∙
<dbl> double 실수형 데이터 -2.21, 0, 3, 5.25, 34.6, ∙∙∙
<lcl> logical 논리형 데이터 TRUE, FALSE
<fct> factor 범주형 데이터 male, female, ∙∙∙
<date> date 날짜형 데이터 2021-12-18
<time> time 시간형 데이터 22:47:34
<dttm> date-time 날짜형 및 시간형 데이터 2021-12-18 22:47:34

 

(2) 티블 생성 함수, tibble()

tibble() 함수는 data.frame() 함수와 구조적으로 동일하며,  tibble() 함수의 구조와 주요 파라미터는 다음과 같습니다.

tibble(..., .rows, .names_repair)
 
파라미터 설명
... 이름-데이터셋의 쌍, 데이터프레임의 "tag1=vector1, tag2=vector2, ..."과 동일
.rows = NULL 길이가 1인 데이터셋으로 구성될 경우, 행 길이 지정
.names_repair 이름에 문제가 존재할 경우 어떻게 처리할 건지 결정
 

tibble() 함수를 이용할 때는 특히 .rows, .names_repair 파라미터 이름 앞에 .(dot)이 붙어있음에 유의해야합니다. 예를 들어  이전 포스트인 <9. 데이터 구조 파악하기>를 참고해 student_tbl을 정의하겠습니다.

student_tbl <- tibble(
  name = c('PSH', 'CGE', 'CSH', 'CMJ', 'CJH'),
  gender = factor(c('m', 'f', 'm', 'f', 'm')),
  korean = c(35, 92.5, 70,85, 60),
  math = c(65L, 80L, 88L, 67L, 28L),
  test_pass = c(FALSE, TRUE, TRUE, TRUE, FALSE)
)
student_tbl

 

(3) 티블의 특징

 ①길이가 1인 변수를 사용할 경우, 다른 변수의 길이에 맞춰 티블을 생성함 
 ②티블 내 변수의 명명규칙이 자유로움
 ③티블을 출력할 때 상위 10개의 행만을 출력함

 

34.2. enframe(), tribble()

더보기

(1) enframe()

(내용 추가)

 

(2) tribble()

(내용 추가)

 

 

34.3. 티블 형태로 데이터셋 불러오기

더보기

(1) read_delim()

(내용 추가)

 

(2) read_csv()

(내용 추가)

 

(3) read_lines()

(내용 추가)