fwrite()를 이용한 빠른 데이터 쓰기

R의 data.table로 데이터 조작하기

Matt Dowle, Arun Srinivasan

Instructors, DataCamp

fwrite

보조 구분자(|)를 사용하여 list 열 쓰기 지원

dt <- data.table(id = c("x", "y", "z"), val = list(1:2, 3:4, 5:6))
fwrite(dt, "fwrite.csv")
fread("fwrite.csv")
id  val
 x  1|2
 y  3|4
 z  5|6
R의 data.table로 데이터 조작하기

날짜 및 datetime 열 (ISO)

  • fwrite()는 날짜 및 datetime 형식을 쓰는 세 가지 방법을 제공: ISO, squash, epoch
  • 기본값인 ISO를 통해 ISO 표준 사용을 권장
R의 data.table로 데이터 조작하기

날짜 및 시간

now <- Sys.time()
dt  <- data.table(date = as.IDate(now), 
                  time = as.ITime(now), 
                  datetime = now)
dt
      date     time              datetime
2018-12-17 19:54:51   2018-12-17 14:54:51
R의 data.table로 데이터 조작하기

날짜 및 datetime 열 (ISO)

# "ISO" is default
fwrite(dt, "datetime.csv", dateTimeAs = "ISO")

fread("datetime.csv")
      date       time                      datetime
2018-12-17   19:55:39   2018-12-17T19:55:39.735036Z
R의 data.table로 데이터 조작하기

날짜 및 datetime 열 (Squash)

  • squashyyyy-mm-dd hh:mm:ssyyyymmddhhmmss 형태로 씀
  • 정수로 읽혀, 모듈로 연산으로 월·연도 등을 쉽게 추출 가능. 예: 20160912 %/% 10000 = 2016
  • 밀리초(ms) 해상도도 지원
  • POSIXct 타입(ms 포함 17자리)은 fread에서 자동으로 integer64로 읽힘
R의 data.table로 데이터 조작하기

날짜 및 datetime 열 (Squash)

fwrite(dt, "datetime.csv", dateTimeAs = "squash")

fread("datetime.csv")

       date   time          datetime
1: 20181217 195539 20181217195539735
20181217 %/% 10000 
[1] 2018
R의 data.table로 데이터 조작하기

날짜 및 datetime 열 (Epoch)

  • epoch는 관련 기준 시점 이후의 수(날짜) 또는 초 수(시간 및 datetime)를 나타냄
  • 기준 시점은 date의 경우 1970-01-01, time의 경우 00:00:00, datetime의 경우 1970-01-01T00:00:00Z
R의 data.table로 데이터 조작하기

날짜 및 datetime 열 (Epoch)

fwrite(dt, "datetime.csv", dateTimeAs = "epoch")
fread("datetime.csv")
 date  time   datetime
17882 71871 1545076672
R의 data.table로 데이터 조작하기

연습해 봅시다!

R의 data.table로 데이터 조작하기

Preparing Video For Download...