본문 바로가기
R 프로그래밍/R basic

R 워크플로우(Project)

by 찐남 2021. 10. 3.
본 포스팅은 R for Data Science를 기반으로 하여 작성하였습니다.

 

데이터 분석을 진행하다 보면, 언젠가는 R을 종료하고 다른 일을 하고, 그다음 날 이어서 분석을 해야 하는 경우가 자주 발생합니다. 또한 R을 사용해서 분리된 상태를 유지하면서 여러 분석을 동시에 수행해야 하는 경우도 있습니다. 외부 데이터(R에서 생성하지 않은 모든 데이터)를 R로 가져와서 분석 후 R의 수치 결과와 수치를 다시 외부 데이터 형태로 보내야 합니다. 이러한 상황을 처리하려면 두 가지 결정을 내려야 합니다. 

 

1. 현재 분석이 "실제 상황"입니까? 즉, 무슨 일이 있었는지에 대한 지속적인 기록으로 무엇을 저장할 것입니까?
2. 분석이 "진행되고 있는" 곳은 어디입니까?



1. 실제 분석 상황이 무엇인가?

 

R 사용자로서 환경(더 정확히는 환경 창에 나열된 개체)을 "실제 분석 상황"으로 간주하는 것이 좋습니다. 하지만 좀 더 장기적으로는 R 스크립트를 "실제 분석 상황"으로 간주하면 훨씬 더 나아질 것입니다. 

 

R 스크립트(및 데이터 파일)를 사용하여 환경을 다시 만들 수 있습니다. 환경에서 R 스크립트를 다시 만드는 것이 훨씬 더 어렵습니다. 메모리에서 많은 양의 코드를 다시 입력해야 하거나 R 코드를 주의 깊게 검토해야 합니다. 이 동작을 빠르게 진행하려면 세션 간에 작업 공간을 유지하지 않도록 RStudio에 지시하는 것이 좋습니다.

 

이제 RStudio를 다시 시작할 때 마지막으로 실행한 코드의 결과를 기억하지 못하기 때문에 이로 인해 단기적으로는 어려움에 처할 수 있습니다. 그러나 이 단기적인 어려움은 코드에서 모든 중요한 상호 작용을 캡처해야 하기 때문에 장기적으로 보면 훨씬 힘든 점을 덜어줄 것입니다. 코드에 계산 자체가 아니라 중요한 계산 결과만 작업 영역에 저장했다는 사실을 3개월 후에 발견하는 것보다 더 나쁜 것은 없습니다.

 

편집기에서 코드의 중요한 부분을 캡처했는지 확인하기 위해 함께 작동하는 훌륭한 키보드 단축키 쌍이 있습니다.

 

  1. Cmd/Ctrl + Shift + F10을 눌러 RStudio를 다시 시작합니다.
  2. Cmd/Ctrl + Shift + S를 눌러 현재 스크립트를 다시 실행합니다.



2. 분석이 어디에서 이루어 지고 있습니까?

 

R은 working directory에 대한 강력한 개념을 가지고 있습니다. Working directory는 로드하도록 요청한 파일을 찾고 저장하도록 요청한 파일을 저장할 위치입니다. RStudio는 콘솔 상단에 현재 working directory를 보여줍니다.

 

getwd()를 실행하면 R 코드로 이것을 출력할 수 있습니다.

getwd()

R 사용자는 홈 디렉토리, 문서 디렉토리 또는 컴퓨터의 다른 이상한 디렉토리를 R의 작업 디렉토리로 두어도 됩니다. 하지만 분석 프로젝트를 디렉토리로 구성하고 프로젝트에서 작업할 때 R의 작업 디렉토리를 관련 디렉토리로 설정하는 것이 관리 차원에서 훨씬 유용합니다. 

 

권장하지는 않지만 R 내에서 작업 디렉토리를 설정할 수도 있습니다. 

setwd("D:/exercise2")

더 좋은 방법이 있기 때문에 추천하는 방법은 절대 아닙니다. 또한 전문가처럼 R 작업을 관리할 수 있는 방법을 알려 드리도록 하겠습니다. 



3. 경로 및 디렉토리

 

두 가지 기본 경로(Mac/Linux 및 Windows) 스타일이 있기 때문에 경로와 디렉토리는 약간 복잡합니다. 그것들은 세 가지 부문에서 차이점이 있습니다. 

 

  1. 가장 중요한 차이점은 경로의 구성 요소를 분리하는 방법입니다. Mac과 Linux는 슬래시(예: plots/diamonds.pdf)를 사용하고 Windows는 백 슬래시(예: plots\diamonds.pdf)를 사용합니다. R은 (현재 사용 중인 플랫폼에 관계없이) 두 유형 모두에서 작동할 수 있지만 불행히도 백 슬래시는 R에 특별한 것을 의미하며 경로에 단일 백 슬래시를 얻으려면 두 개의 백슬래시를 입력해야 합니다. 그래서 항상 슬래시가 있는 Linux/Mac 스타일을 사용하는 것이 좋습니다.
  2. 절대 경로(즉, 작업 디렉토리에 관계없이 동일한 위치를 가리키는 경로)는 다르게 보입니다. Windows에서는 드라이브 문자(예: C:) 또는 두 개의 백슬래시(예: \\servername)로 시작하고 Mac/Linux에서는 슬래시 "/"(예: /users/hadley)로 시작합니다. 절대 경로는 공유를 방해하기 때문에 스크립트에서 절대 경로를 사용해서는 안 됩니다. 다른 사람은 당신과 똑같은 디렉토리 구성을 가질 수 없습니다. 
  3. 마지막 사소한 차이점은 ~가 가리키는 곳입니다. ~는 홈 디렉토리에 대한 편리한 바로 가기입니다. Windows에는 실제로 홈 디렉토리라는 개념이 없으므로 대신 문서 디렉토리를 가리킵니다. 

 

4. RStudio projects

 

R 전문가는 프로젝트와 관련된 모든 파일(입력 데이터, R 스크립트, 분석 결과, 수치)을 함께 보관합니다. 이것은 RStudio가 프로젝트를 통해 기본적으로 지원하는 현명하고 일반적인 관행입니다. 프로젝트를 생성해 보도록 하겠습니다. 

 

File 클릭 -> New Project... 클릭

 

New Directory 클릭

 

 

New Project 클릭

 

디렉토리 명 입력 및 경로명 지정

 

생성된 디렉토리 명 및 경로명 확인



프로젝트를 temp라고 부르고 프로젝트를 어떤 하위 디렉토리에 넣을지 생각하세요. 합리적인 곳에 저장하지 않으면 나중에 찾기 어려울 수도 있습니다. 이 프로세스가 완료되면 RStudio 프로젝트를 얻게 됩니다. 프로젝트의 "홈" 디렉토리가 현재 작업 디렉토리인지 확인해 보세요.

 

getwd()

 

이제부터 상대 경로가 있는 파일을 참조할 때마다 여기에서 찾으시면 됩니다. 이제 스크립트 편집기에서 다음 명령을 입력하고 파일을 "diamonds.R"로 저장합니다. 다음으로 PDF 및 CSV 파일을 프로젝트 디렉토리에 저장하는 예제를 실행해 보겠습니다. 

 

library(tidyverse)
ggplot(diamonds, aes(carat, price)) +
____geom_hex()
ggsave("diamonds.pdf")
write_csv(diamonds, "diamonds.csv")

D:/temp/temp에 pdf 파일, csv 파일이 생성되었음을 확인할 수 있습니다.

 

이제 RStudio를 종료합니다. 프로젝트와 연결된 폴더를 확인해 보세요. .Rproj 파일이 있습니다. 해당 파일을 두 번 클릭하여 프로젝트를 다시 엽니다. 중단한 위치로 돌아갑니다. 동일한 작업 디렉터리와 명령 기록이며 작업 중이던 모든 파일이 여전히 열려 있습니다. 그러나 위의 지침을 따랐기 때문에 완전히 새로운 환경을 갖게 되어 깨끗한 상태로 시작할 수 있습니다. 



반응형

댓글