객체의 파일 입출력

    데이터를 다양한 알고리즘으로 장시간 처리한 뒤 파일에 저장해두면 나중에 같은 계산을 반복할 필요가 없어 효율적이다. 바이너리 파일로 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 스코프’ 절에서 설명했다.

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