더북(TheBook)

객체의 파일 입출력

데이터를 다양한 알고리즘으로 장시간 처리한 뒤 파일에 저장해두면 나중에 같은 계산을 반복할 필요가 없어 효율적이다. 바이너리 파일로 R 객체를 저장하고 불러들이는 함수에는 save( ), load( )가 있다.

표 4-4 객체의 파일 입출력 함수

save : 메모리에 있는 객체를 파일에 저장한다.

save(
  ...,               # 저장할 객체의 이름
  list=character(),  # 저장할 객체의 이름을 벡터로 지정할 경우 ... 대신 사용
  file               # 파일명
)

load : 파일로부터 객체를 메모리로 읽어들인다.

load(
  file  # 파일명
)

반환 값은 파일에서 읽어들인 객체의 이름들을 저장한 벡터다.

다음은 두 벡터 x, y를 xy.RData 파일에 저장하는 예다.

> x <- 1:5
> y <- 6:10
> save(x, y, file="xy.RData")

메모리에 있는 모든 객체를 저장하고자 한다면 메모리에 있는 객체 목록을 조회하는 함수 ls( )2 의 결과를 list 인자에 지정할 수 있다. 다음은 a, b, c 객체를 파일 abc.RData에 저장하는 예다.

> rm(list=ls())  # 메모리에 있는 객체를 모두 삭제
> a <- 1:5
> b <- 6:10
> c <- 11:15
> save(list=ls(), file="abc.RData")

파일로부터 데이터를 불러들이는 함수는 load( )다. 다음 코드는 abc.RData 파일로부터 a, b, c 객체를 불러들이는 예를 보여준다.

> rm(list=ls())
> ls()
character(0)
> load("abc.RData")
> ls()
[1] "a" "b" "c"
> a
[1] 1 2 3 4 5
> b
[1] 6 7 8 9 10
> c
[1] 11 12 13 14 15

2 ‘3.5 스코프’ 절에서 설명했다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.