관리자가 아닌 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_USER
RStudio가 Rprofile.site 파일을 인식하도록하는 대신 환경 변수 를 원하는 라이브러리 폴더의 파일 경로 값 으로 설정 하는 것입니다.
R_LIBS_USER
Windows에서 환경 변수를 설정하려면 제어판 (시스템 속성-> 고급 시스템 속성-> 환경 변수-> 사용자 변수)에서 원하는 값 (라이브러리 폴더의 경로)으로 이동하십시오.
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의 경우 :
-
C : \ User \ Rlibs (또는 권한이있는 다른 라이브러리)와 같이 개인 라이브러리를 갖고 싶은 드라이브에 디렉토리를 만듭니다.
-
제어판 설정을 편집하려면 Windows 검색 창에서 “계정의 환경 변수 편집”을 검색 / 이동하십시오.
-
“환경 변수”창의 중간에있는 “새로 작성 …”을 클릭하십시오.
-
“새 사용자 변수”창 에서 “변수 이름”에 R_LIBS 를 입력 하고 작성한 개인 라이브러리 디렉토리의 경로 (예 : C : \ User \ Rlibs)
-
확인을 클릭하면 사용자 변수 창에 변수 / 값 쌍이 표시됩니다
-
다시 확인을 클릭하십시오
이제 R (또는 Rstudio)을 시작하고 명령 .libPaths()
을 입력 하면 생성 한 개인 라이브러리와 R 시스템 라이브러리가 표시됩니다.
Mac의 경우 :
-
“홈”또는 “사용자 이름”디렉토리에 Rlibs 라는 폴더를 작성하십시오.
-
터미널 응용 프로그램을 시작하십시오
-
유형 :
echo "R_LIBS=~/Rlibs"> .Renvrion
대소 문자가 일치하는지 확인하십시오. -
입력
ls -a
디렉토리에있는 파일의 전체 목록을 보려면, 이제 포함해야하는 .Renvrion을 -
있는지 확인 .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)
가 유용합니다.