[r] Rprofile.site에서 .libPaths를 사용하여 R 기본 라이브러리 경로 변경이 작동하지 않습니다

관리자가 아닌 Windows에서 R을 실행하고 있습니다. 패키지를 설치할 때 다음 명령이 작동하지 않습니다.

> install.packages("zoo")
Installing package(s) into ‘C:/Program Files/R/R-2.15.2/library’
(as ‘lib’ is unspecified)
Warning in install.packages :
  'lib = "C:/Program Files/R/R-2.15.2/library"' is not writable

패키지를 설치하려면 라이브러리 위치를 지정해야합니다.

install.packages("zoo", lib="C:/software/Rpackages")

패키지를로드하려면 라이브러리 위치도 지정해야합니다.

library("zoo", lib.loc="C:/software/Rpackages")

이 모든 것이 정상이지만 C:/software/Rpackages라이브러리 경로에 어떻게 든 추가 할 수 있는지 확인 하고 매번 입력 할 필요가 없었습니다.

온라인으로 검색 할 때 Rprofile.site파일 을 편집 하고 줄을 추가하는 것이 방법 중 하나라는 것을 알았 습니다.

.libPaths("C:/software/Rpackages")

그러나이 작업을 수행하고 RStudio를 시작하면 이것이 얻은 결과입니다.

> .libPaths()
[1] "C:/Program Files/R/R-2.15.2/library" "C:/Program Files/RStudio/R/library" 

.libPaths내가 추가 한 명령이 Rprofile.site효과가없는 것 같습니다! 왜 그런가요? 또는 더 중요한 것은 라이브러리 위치에 입력하지 않고 패키지를 설치하고로드 할 수 있도록 문제를 어떻게 해결할 수 있습니까?

참고 : RStudio를 시작하면 .libPaths()명령이 정상적으로 작동하는 것처럼 보입니다.

.libPaths("C:/software/Rpackages")
> .libPaths()
[1] "C:/software/Rpackages"               "C:/Program Files/R/R-2.15.2/library"

이상하지 않습니까?



답변

나는 일반적으로 모든 패키지를 하나의 라이브러리에 유지하려고 시도하지만 라이브러리를 추가하려면 파일 라이브러리에 이미 존재 해야하는 새 라이브러리를 기존 라이브러리 경로에 추가하지 않는 이유는 무엇입니까?

.libPaths( c( .libPaths(), "~/userLibrary") )

또는 (그리고 이것은 userLibrary를 새로운 패키지를 넣는 첫 번째 장소로 만듭니다) :

.libPaths( c( "~/userLibrary" , .libPaths() ) )

그런 다음 (이것을 처음 쓸 때 다시 돌아 왔습니다) :

> .libPaths()
[1] "/Library/Frameworks/R.framework/Versions/2.15/Resources/library"
[2] "/Users/user_name/userLibrary"  

.libPaths기능은 대부분의 다른 비 그래픽 기능과 약간 다릅니다. 부작용을 통해 작동합니다. R 환경 변수를보고하고 변경하는 기능 Sys.getenv과 기능 Sys.setenv은 분리되었지만 .libPaths목표를보고하거나 변경할 수 있습니다.

R 시작 프로세스에 대한 정보는 ?Startup도움말 페이지 에서 읽을 수 있으며 RStudio 자료는 https://support.rstudio.com/hc/en-us/articles/200549016-Customizing-RStudio에 있습니다.

귀하의 경우 RStudio가 Rprofile.site 설정을 존중하지 않거나 RStudio 기본값 중 하나에서 .Rprofile 설정을 읽고이를 무시하고있는 것 같습니다. 또한이 작업의 결과에 호출 내용이 .Library및에 추가된다는 점을 언급해야하는데 .Library.site, 이는 RStudio (또는 다른 IDE 또는 네트워크에 설치된) 호스트 R이 다른 동작을 나타내는 이유이기도합니다.

Sys.getenv()R 프로세스의 현재 시스템 환경을 리턴 하므로 다음을 사용하여 라이브러리 및 기타 경로를 볼 수 있습니다.

Sys.getenv()[ grep("LIB|PATH", names(Sys.getenv())) ]

패키지를 저장하고 액세스하는 데 중요한 두 가지는 (현재 Linux 상자에서는 다릅니다) :

R_LIBS_SITE                          /usr/local/lib/R/site-library:/usr/lib/R/site-library:/usr/lib/R/library
R_LIBS_USER                          /home/david/R/x86_64-pc-linux-gnu-library/3.5.1/


답변

올바른 해결 방법은 R_LIBS_USERRStudio가 Rprofile.site 파일을 인식하도록하는 대신 환경 변수 를 원하는 라이브러리 폴더의 파일 경로 값 으로 설정 하는 것입니다.

R_LIBS_USERWindows에서 환경 변수를 설정하려면 제어판 (시스템 속성-> 고급 시스템 속성-> 환경 변수-> 사용자 변수)에서 원하는 값 (라이브러리 폴더의 경로)으로 이동하십시오.

Variable name: R_LIBS_USER
Variable value: C:/software/Rpackages  

R_LIBS_USER를 설정하면 RStudio를 직접 시작하거나 파일을 마우스 오른쪽 단추로 클릭하고 “연결 프로그램”을 시작하여 RStudio를 시작하여 라이브러리가 .libPaths ()에 먼저 표시됩니다.

RStudio 바로 가기를 클릭하여 RStudio가 항상 시작되면 Rprofile 솔루션이 작동 할 수 있습니다. 이 경우 기본 작업 디렉토리를 Rprofile 이있는 디렉토리로 설정하면 충분합니다. RStudio 솔루션을 시작하기 위해 파일을 클릭하면 Rprofile 솔루션이 작동하지 않습니다. 기본 작업 디렉토리에서 작업 디렉토리가 변경되기 때문입니다.


답변

코드를 .Rprofile기본 작업 디렉토리 의 파일에 배치하여 문제를 해결했습니다 .

먼저 기본 작업 디렉토리의 위치를 ​​찾았습니다.

> getwd()
[1] "C:/Users/me/Documents"

그런 다음 텍스트 편집기를 .Rprofile사용하여 다음 줄이 포함 된 간단한 파일 을 작성 했습니다.

.libPaths("C:/software/Rpackages")

마지막으로 시작 R하고 실행할 때 .libPaths()원하는 출력을 얻습니다.

> .libPaths()
[1] "C:/software/Rpackages"               "C:/Program Files/R/R-2.15.2/library"
[3] "C:/Program Files/RStudio/R/library"


답변

/superuser/749283/change-rstudio-library-path-at-home-directory

~ / .Renviron 편집

R_LIBS_USER=/some/path


답변

R 또는 Rstudio를 사용하는지 여부를 영구적으로 (각 세션마다 정의 할 필요가 없음) 개인 라이브러리를 추가 하는 솔루션 ( 여기서 SFU의 Carl Schwarz에게 감사드립니다)이 있다고 생각 합니다. 내 Mac 컴퓨터에서 기본값입니다. 나는 이것이 SO에 명시 적으로 배치 된 것을 보지 못했기 때문에 Windows와 Mac에 대해 제공 한 단계를 요약했습니다.

Windows 7 OS의 경우 :

  1. C : \ User \ Rlibs (또는 권한이있는 다른 라이브러리)와 같이 개인 라이브러리를 갖고 싶은 드라이브에 디렉토리를 만듭니다.

  2. 제어판 설정을 편집하려면 Windows 검색 창에서 “계정의 환경 변수 편집”을 검색 / 이동하십시오.

  3. “환경 변수”창의 중간에있는 “새로 작성 …”을 클릭하십시오.

  4. “새 사용자 변수”창 에서 “변수 이름”에 R_LIBS 를 입력 하고 작성한 개인 라이브러리 디렉토리의 경로 (예 : C : \ User \ Rlibs)

  5. 확인을 클릭하면 사용자 변수 창에 변수 / 값 쌍이 표시됩니다

  6. 다시 확인을 클릭하십시오

이제 R (또는 Rstudio)을 시작하고 명령 .libPaths()을 입력 하면 생성 한 개인 라이브러리와 R 시스템 라이브러리가 표시됩니다.

Mac의 경우 :

  1. “홈”또는 “사용자 이름”디렉토리에 Rlibs 라는 폴더를 작성하십시오.

  2. 터미널 응용 프로그램을 시작하십시오

  3. 유형 : echo "R_LIBS=~/Rlibs"> .Renvrion대소 문자가 일치하는지 확인하십시오.

  4. 입력 ls -a디렉토리에있는 파일의 전체 목록을 보려면, 이제 포함해야하는 .Renvrion을

  5. 있는지 확인 .Renviron의 파일이 올바르게 설정되어있는 :more .Renviron

R / Rstudio를 실행하고 입력 .libPaths()하면 개인 라이브러리의 새로운 경로가 표시됩니다.


답변

관리자 권한이없는 경우 \ R-3.1.0 \ etcRprofile.site 에 있는 -file 을 열고 다음을 추가하면 도움이 될 수 있습니다.

.First <- function(){
  .libPaths("your path here")
}

.libPath()시작시 명령을 직접 평가합니다.


답변

나는 이것을 이해하는 데 실제로 어려움을 겪었다. gorkypl은 OS 및 Rstudio를 마지막으로 다시 설치할 때 위의 올바른 솔루션을 제공했지만 이번에는 환경 변수를 설정해도 해결되지 않았습니다.

R 및 Rstudio를 모두 설치 제거하고 C : \ R 및 C : \ Rstudio 디렉토리를 작성한 후 둘 다를 다시 설치했습니다.

R_LIBS_USER 사용자 변수를 선호하는 디렉토리에 정의하고 (gorkypl의 답변에 따라) 사용자 변수가로드되도록 컴퓨터를 다시 시작하십시오. Rstudio를 엽니 다. 오류는 없어야합니다.

Sys.setenv()R_LIBS_USER를 다른 라이브러리의 경로로 수정 하는 데 사용할 수 있으며 , 이는 더 쉽고 컴퓨터를 다시 시작할 필요가 없습니다.

R_LIBS_USER가 무엇으로 설정되어 있는지 확인하려면 :
?Sys.getenv()

독서 help(Startup)가 유용합니다.