8.2 R 바이너리(binary) 파일 입출력
R 작업공간에 존재하는 한 개 이상의 객체들을 저장하고 읽기 위한 함수
R 데이터 관련 바이너리 파일은 한 개 이상의 객체가 저장된 바이너리 파일인 경우
*.Rdata형태를 갖고, 단일 객체를 저장할 경우 보통*.rds파일 확장자로 저장*.Rdata입출력 함수load():*.Rdata파일 읽어오기save(): 한 개 이상 R 작업공간에 존재하는 객체를.Rdata파일로 저장save.image(): 현재 R 작업공간에 존재하는 모든 객체를.Rdata파일로 저장
# 현재 작업공간에 존재하는 모든 객체를 "output" 폴더에 저장
# output 폴더가 존재하지 않는 경우 아래 명령 실행
# dir.create("output") 
ls() [1] "codebook"       "dbp"            "dbp2"           "def.chunk.hook"
 [5] "diab"           "hook_output"    "input1"         "input2"        
 [9] "plasma"         "varname"       
save.image(file = "output/all_obj.Rdata")
rm(list = ls()) 
ls()character(0)
# 저장된 binary 파일(all_obj.Rdata) 불러오기
load("output/all_obj.Rdata")
ls() [1] "codebook"       "dbp"            "dbp2"           "def.chunk.hook"
 [5] "diab"           "hook_output"    "input1"         "input2"        
 [9] "plasma"         "varname"       
# dnp, plasma 데이터만 output 폴더에 sub_obj.Rdata로 저장
save(dbp, plasma, file = "output/sub_obj.Rdata")
rm(list = c("dbp", "plasma"))
ls()[1] "codebook"       "dbp2"           "def.chunk.hook" "diab"          
[5] "hook_output"    "input1"         "input2"         "varname"       
# sub_obj.Rdata 파일 불러오기
load("output/sub_obj.Rdata")
ls() [1] "codebook"       "dbp"            "dbp2"           "def.chunk.hook"
 [5] "diab"           "hook_output"    "input1"         "input2"        
 [9] "plasma"         "varname"       
*.rds입출력 함수readRDS()/saveRDS(): 단일 객체가 저장된*.rds파일을 읽거나 저장- 대용량 데이터를 다룰 때 유용함
 read.table()보다 데이터를 읽는 속도가 빠르며, 다른 확장자 명의 텍스트 파일보다 높은 압축율을 보임
# 대용량 파일 dataset/pulse.csv 불러오기
# system.time(): 명령 실행 시가 계산 함수
system.time(pulse <- read.csv("dataset/pulse.csv", header = T)) 사용자  시스템 elapsed 
  4.970   0.058   5.030 
# saveRDS()함수를 이용해 output/pulse.rds 파일로 저장
saveRDS(pulse, "output/pulse.rds")
rm(pulse); ls() [1] "codebook"       "dbp"            "dbp2"           "def.chunk.hook"
 [5] "diab"           "hook_output"    "input1"         "input2"        
 [9] "plasma"         "varname"       
system.time(pulse <- readRDS("output/pulse.rds")) 사용자  시스템 elapsed 
  0.086   0.000   0.087