작업 디렉터리를 변경하지 않고 R 스크립트 및 데이터 파일 찾기

Jesse John 2023년6월21일
  1. R 스튜디오 프로젝트
  2. file.path() 기능
  3. 여기 패키지
  4. 제안된 작업 흐름
작업 디렉터리를 변경하지 않고 R 스크립트 및 데이터 파일 찾기

필요한 R 스크립트 및 데이터 파일을 참조하기 위해 상대 경로를 사용할 수 있기 때문에 현재 파일의 위치를 R의 작업 디렉토리로 설정하려는 경우가 많습니다. 그러나 작업 디렉토리를 변경하는 것은 이상적인 솔루션이 아닙니다.

이 문서에서는 R Studio 프로젝트, here 패키지 및 file.path() 함수를 결합하여 R이 수동으로 작업 디렉터리를 현재 스크립트 위치로 변경하지 않고 프로젝트에 필요한 파일을 찾을 수 있도록 하는 방법을 보여줍니다.

R 스튜디오 프로젝트

R Studio를 사용하여 R 프로젝트를 생성하면 지정된 폴더에 .Rproj 파일이 생성됩니다.

.Rproj 파일을 열 때:

  1. 해당 프로젝트 전용 작업 공간이 있는 R Studio의 새 인스턴스를 얻습니다.
  2. .Rproj가 존재하는 폴더를 작업 디렉토리로 만듭니다.

그러나 이 프로젝트 폴더의 하위 폴더에 있는 .Rmd 파일은 knit일 때 임시로 작업 디렉토리를 해당 폴더로 변경합니다. 아래에 언급된 here 패키지는 이 문제를 해결합니다.

file.path() 기능

기본 R 함수인 file.path()를 사용하면 플랫폼 독립적인 방식으로 필요한 파일의 경로를 구성할 수 있습니다.

예를 들어 mydata.csv 파일이 datafiles라는 하위 폴더에 있는 경우 구문은 다음과 같습니다.

file.path("datafiles", "mydata.csv")

이 함수는 코드가 포함된 스크립트가 실행되는 OS에 대한 올바른 구분 기호를 사용하여 경로를 반환합니다.

여기 패키지

R 프로젝트에서 사용할 때 here 패키지를 사용하면 모든 파일의 경로를 기본 프로젝트 폴더의 상대 경로로 쓸 수 있습니다.

현재 파일 위치에 상대적인 .Rproj 파일을 찾아 이를 수행합니다.

here 패키지를 사용하려면 설치해야 합니다. 다른 사용자 또는 컴퓨터 간에 파일을 공유하는 경우 모든 관련 컴퓨터에 파일을 설치해야 합니다.

다음과 같이 각 스크립트 또는 .Rmd 문서에서 here 패키지를 사용하십시오.

  1. 먼저 .Rproj 파일이 있는 기본 프로젝트 폴더에 상대적인 현재 파일의 경로로 here::i_am()을 호출합니다. file.path() 함수를 사용하여 이 경로를 코딩하십시오.

  2. library(here)here 패키지를 로드합니다.

  3. here() 기능을 사용하여 기본 프로젝트 폴더에서 필요한 파일에 대한 상대 경로를 구성합니다. 구문은 file.path()와 유사합니다.

    그러나 here().Rproj 파일의 위치에 대한 지식을 사용하여 R이 참조 파일을 찾는 데 도움을 줍니다.

예:

# Suppose the folder structure of the project is as follows.

ProjFolder
|___Scripts
|      |__MyScript.R
|
|___Data
|      |__MyData.csv
|
|__Documents
       |__MyRMarkdown.Rmd


# In .R files. The same for .Rmd files.

# First, give the path of this script file relative to the main project folder.
here::i_am(file.path("Scripts", "MyScript.R"))

# Then, load the here package.
library(here)

# Subsequently, use the here() function whenever a path is written.
# Use a relative path from the main project folder.
myvar = read.csv2(here("Data", "MyData.csv"))

제안된 작업 흐름

  1. .Rproj 파일을 열어 프로젝트를 시작합니다. 이렇게 하면 작업 디렉토리가 해당 파일이 포함된 폴더로 설정됩니다.
  2. R Studio의 파일 패널을 사용하여 필요한 파일을 엽니다. 이렇게 하면 올바른 작업 디렉터리가 있는 R Studio의 이 특정 인스턴스에서 열릴 수 있습니다.
  3. 스크립트 및 .Rmd 파일에서 here 패키지를 사용하려면 이전 섹션의 단계를 따르십시오.

전체 프로젝트 폴더는 컴퓨터의 모든 위치에 있을 수 있습니다. 전체적으로 공유할 수 있으며 필요한 소프트웨어가 있는 다른 컴퓨터에서 사용할 수 있습니다.

here() 함수가 다른 패키지와 충돌하는 경우 here::here() 구문을 사용하십시오.

참조

R Studio 프로젝트에 대한 자세한 내용은 R for Data Science를 참조하세요.

here 패키지에 대한 자세한 내용은 먼저 블로그 게시물 이미 프로젝트를 사용하고 있는데 왜 here 패키지를 사용해야 하나요?를 참조하세요. 그런 다음 여기의 비네트를 읽으십시오.

작가: Jesse John
Jesse John avatar Jesse John avatar

Jesse is passionate about data analysis and visualization. He uses the R statistical programming language for all aspects of his work.