2016-09-25 2 views
0

현재 사용되지 않는 몇 가지 R 프로젝트가 있습니다. 현재 사용되지 않는 (또는 많이 수정 된) 여러 패키지에 의존합니다. 모든 것이 원활하게 작동하기 위해서 나는 다른 폴더에 저장 한 패키지의 이전 버전을 사용하고 을 수동으로에서 %userprofile%\documents\R\win-library\3.3까지로드해야합니다. 그러나 이는 편리하지 않습니다. 특히 여러 프로젝트를 동시에 실행하려는 경우 (일부는 패키지의 새롭고 업데이트 된 버전이 필요함)RStudio : 각 .Rproj에 다른 패키지 버전 사용

내 질문 - 라이브러리를 가져와로드 할 각 .Rproj에 대한 사용자 지정 디렉터리를 지정하는 방법이 있습니까?

+1

당신은'packrat' 패키지를 보았습니까? –

답변

3

:

검사 점 만들려면

  1. 각 프로젝트의 최상위 디렉토리가를 호출 projA, projB ...
  2. 각각 내에서 libs/이라는 디렉토리를 만듭니다.
  3. 그리고 각각의 디렉토리 내에서
  4. 당신이 다른 프로젝트 디렉토리에 R을 시작하면 이제 각각 별도의 라이브러리 디렉토리 경로를 이전합니다 .libPaths("./libs")

과 같은 하나의 할당과 파일 .Rprofile이 프로젝트별로 프로젝트를 우선 적용 할 수 있습니다.

간단히 말해서

, 접근 방식은 여기에 설명 당신으로 주위 지역수정 패키지를하시기 바랍니다 유지할 수 있습니다. (당신이 그렇게 선택하면 당신은 .libPaths()를 통해 공통의 디렉토리를 지정할 수 있습니다.)

좋은 일이 그 어떤 R 호출, 일괄 처리 또는 GUI 또는 RStudio 또는 광택이 있거나이 것

  1. 작업 ...
  2. 은 다른 도구에 의존하지 않으므로
  3. 은 RStudio 또는 .Rprof 파일에 의존하지 않지만 RStudio도 자유롭게 사용할 수 있습니다.

자주 사용하는 Base R이 있습니다.

2

하나의 옵션은 Revolution Analytics에서 checkpoint 패키지를 사용하는 것입니다.

프로젝트의 각 메인 R 파일에 대해 패키지 세트를로드하려는 날짜를 나타낼 수 있습니다. 그것에 대해 조금 더 읽을 수 있습니다 here.

enter image description here

미러를 사용 getValidSnapshots(mranRootUrl = mranUrl())에서 주어진 날짜에서 스냅 샷 했었던 패키지를 당깁니다. 당신은이 훨씬 간단하게 해결할 수 있습니다

# Create temporary project and set working directory 

example_project <- paste0("~/checkpoint_example_project_", Sys.Date()) 

dir.create(example_project, recursive = TRUE) 
oldwd <- setwd(example_project) 


# Write dummy code file to project 

cat("library(MASS)", "library(foreach)", 
    sep="\n", 
    file="checkpoint_example_code.R") 

# Create a checkpoint by specifying a snapshot date 

library(checkpoint) 
checkpoint("2014-09-17") 

# Check that CRAN mirror is set to MRAN snapshot 
getOption("repos") 

# Check that library path is set to ~/.checkpoint 
.libPaths() 

# Check which packages are installed in checkpoint library 
installed.packages() 

# cleanup 
unlink(example_project, recursive = TRUE) 
setwd(oldwd) 
+3

이것은 유용하지만 OP가 최신 패키지와 구식 패키지를 혼합하여 사용하려는 경우 문제가 될 수 있습니다 ... –