[R] R에서 RDS 파일 활용하기 (feat. readr)

해당 포스트에서는 R에서 효율적인 데이터셋 관리 를 위한 RDS 파일 활용 에 대해 설명합니다.

RDS 파일은 R 전용 데이터 파일로 다른 파일들에 비해 R에서 읽고 쓰는 속도가 빠르고 용량이 작다는 장점이 있습니다.

일반적으로 R에서 분석 작업을 할때는 RDS파일을 이용하고, R을 사용하지 앟는 사람과 파일을 주고받을 때는 CSV 파일을 이용합니다.

0. 샘플 데이터 준비하기

테스트에 사용할 데이터는 '네이버 영화 리뷰 데이터'로 파일 크기는 약 19MB 정도 됩니다.

  • 데이터 불러오기
library(readr)

system.time(nsmc_ratings <- read_tsv("d:/github/data/nsmc/ratings.txt")) # 18.6MB

## 사용자  시스템 elapsed 
## 0.16    0.00    0.16 

1. 데이터 프레임을 RDS 파일로 저장하기

saveRDS()를 이용해 데이터 프레임을 .rds파일로 저장합니다. write.csv()와 마찬가지로 괄호 안에 데이터 프레임명과 저장할 파일명을 지정하면 됩니다.

saveRDS(nsmc_ratings, file="d:/github/data/nsmc/nsmc_ratings.rds")

저장 결과 지정한 폴더에 nsmc_ratings.rds 파일이 생성되었고, 생성 파일 크기는 8.1MB로 원본 파일(ratings.txt) 대비 약 57% 감소한 것을 알 수 있습니다.

RDS 용량 감소 확인
▲ RDS 용량 감소 확인

2. RDS 파일 불러오기

RDS 파일을 불러올 때는 readRDS() 함수를 이용합니다. 저장 파일의 크기가 감소했었음에도 불구하고 정상적으로 로드되는 것을 확인할 수 있습니다.

system.time(tets_readRDS <-readRDS("d:/github/data/nsmc/nsmc_ratings.rds")) # 8.0MB

## 사용자  시스템 elapsed 
## 0.24    0.00    0.24

3. 결론

RDS 파일 형식을 사용한다면 데이터 저장 공간을 좀 더 효율적으로 사용할 수 있다는 것을 확인하였으며, 속도 측면에서는 readr::read_tsv()가 조금 더 빠른 것으로 확인되었습니다.

RDS 파일은 R 사용자들 간에 데이터 공유시 활용 가능하며, 그 외 경우에는 .csv 파일 형식으로 전달하고 readr 패키지를 사용하는 것이 좀 더 효과적입니다.

4. 출처

[1] [책] Do it! 쉽게 배우는 R 데이터 분석 - p96~97 'RDS 파일 활용하기'


banner-request-analysis