| 서론
R 프로그래밍을 하다보면 시시때때로 메모리 이슈나 연산량 이슈로 R Studio가 죽을 때가 있다.
R에서의 모든 연산은 메모리에 올려놓고 연산을 하게 되는데 이때 R Studio가 강제 kill 될 경우 작업중이던 메모리의 데이터는 전부 소실된다.
R이 메모리에 올려 놓고 연산하기 때문에 빠르기는 해도 메모리에 올릴 수 없으면 연산이 불가능 하다는 단점이 있다.
R종료할 때 다음과 같이 ~/.RData를 저장할 것인지를 묻는데 이 내용이 현재까지 작업한 내역을 RData로 저장할지를 물어보는 것이다.
만약 저장하지 않은 상태에서 R Studio를 열게 되면 모든 자료는 소실된다
따라서 작업 중간 중간 현재까지 작업 내역을 저장해 놓는다면 R Studio가 비정상 종료된다 해도 그전 내역까지는 살릴 수 있다.
참고로 RStudio는 최초 기동할 때 ~/.RData를 항상 읽도록 되어 있기 때문에 종료직전 저장한 내역까지 다시 읽어올 수 있는 것이다.
R version 3.3.3 (2017-03-06) -- "Another Canoe"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-w64-mingw32/x64 (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
[Workspace loaded from ~/.RData]
>
주황색 부분이 읽어 왔다는 부분
| 그럼 언제 활용할 것인가?
사실 이 부분은 사용자 나름일것 같은데, 개인적으로 중요 데이터를 저장하는 용도일 수도 있고
R 코드를 운영단계에 적용시 장애 상황에 대비해 저장할 수도 있다.
추후에 다시 언급하겠지만 R에서도 try ~ catch 구문으로 에러 처리를 할 수 있다.
| RData 저장
iris 데이터를 작업중인 데이터라 가정하고 이를 저장했다가 다시 불러보자
> iris_bak <- iris
> save(iris_bak, file="D:/myTemp/iris_bak.RData")
해당 위치에 가보면 RData 파일이 생성된 것을 알 수 있다.
데이터가 클 수록 이미지 파일도 크기 때문에 적재 완료까지는 잠시 기다려야 할 수 있다.
| RData 읽기
RStudio를 종료한 후 다시 시작해보자. 종료시 RData를 자동저장하지 않고 확인한다.
아마 iris_bak이라는 데이터가 보이지 않을 것이다.
읽는 코드는 다음과 같다.
> load("D:/myTemp/iris_bak.RData")
| R의 작업공간 모든 객체 저장하고 읽기
R 객체만의 저장이 아니라 작업 내역을 모두 그대로 저장할 때도 있다.
그럴때는 save.image 함수를 이용한다.
> save.image(file="D:/myTemp/r_workspace.RData")
# 다시 읽을때는 load 를 쓴다
> load("D:/myTemp/r_workspace.RData")
| 결론
기본중의 기본이지만,
이 기본 기능을 쓰지 않아 낭패보는일 없도록 가끔은 신경써보는 것을 권장한다.
(by Data 쿡북)
좋아요 버튼이 큰 힘이 됩니다.
'Data Science > R 전처리' 카테고리의 다른 글
Rstudio 들여쓰기, 주석달기 단축키 :: Data 쿡북 (11) | 2017.09.07 |
---|---|
R에서 오류 예외처리 (try, trycatch) :: Data 쿡북 (11) | 2017.08.23 |
댓글