source

Rprofile에서 .libPaths를 사용하여 R 기본 라이브러리 경로를 변경합니다.사이트가 작동하지 않음

nicesource 2023. 7. 13. 20:55
반응형

Rprofile에서 .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 the (파일 및 행 추가)

.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"

이상하지 않나요?

변수를 입니다.R_LIBS_USERRStudio가 R 프로파일을 인식하도록 하는 대신 원하는 라이브러리 폴더에 대한 파일 경로의 값입니다.사이트 파일.

은 다음과 .R_LIBS_USERWindows에서 제어판(시스템 속성 -> 고급 시스템 속성 -> 환경 변수 -> 사용자 변수)으로 이동하여 원하는 값(라이브러리 폴더의 경로)으로 이동합니다.

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

수 에는 를 해 볼 수 있습니다.rundll32 sysdm.cpl,EditEnvironmentVariables윈도우즈의 명령줄에서 환경 변수를 추가합니다.

R_LIBS_USER를 설정하면 RStudio를 직접 시작하거나 파일을 마우스 오른쪽 버튼으로 클릭하고 "Open With"를 클릭하여 RStudio를 시작할 때와 관계없이 라이브러리가 .libPaths()에 먼저 표시됩니다.

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

일반적으로 모든 패키지를 하나의 라이브러리에 보관하려고 하지만, 라이브러리를 추가하려면 새 라이브러리(파일 시스템에 이미 존재해야 함)를 기존 라이브러리 경로에 추가하는 것이 어떻습니까?

.libPaths( c( .libPaths(), "~/userLibrary") )
 # obviously this would need to be a valid file directory in your OS
 # min just happened to be on a Mac that day

또는 (사용자 라이브러리가 새 패키지를 가장 먼저 배치합니다.)

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

그러면 (적어도 제가 이 글을 처음 썼을 때는 돌아옵니다):

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

.libPaths함수는 다른 대부분의 비그래픽 함수와 약간 다릅니다.그것은 부작용을 통해 작동합니다. »Sys.getenv그리고.Sys.setenv R 를 변경하는 되었지만 R 경변보변것는분만지었되리은하경를고고하수,.libPaths대상을 보고하거나 변경할 수 있습니다.

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

RStudio R 사이트 하는 것 .사이트 설정을 읽어서 재정의하는 것일 수 있습니다.Rstudio Rprofile은 Rstudio입니다.또한 이 작업의 결과는 통화 내용을 다음에 추가한다는 것을 언급해야 합니다..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/
 

나는 코드를 위치시켜 문제를 해결할 수 있었습니다..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"

https://superuser.com/questions/749283/change-rstudio-library-path-at-home-directory

편집 ~/.렌비론

R_LIBS_USER=/some/path

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

Windows 7 OS의 경우:

  1. 드라이브에 개인 라이브러리를 가질 디렉토리(예: C:\User\Rlibs(또는 권한이 있는 다른 라이브러리)를 만듭니다.

  2. 제어판 설정을 편집하려면 Windows 검색란에서 "계정에 대한 환경 변수 편집"을 검색하거나 이동합니다.

  3. 새로 만들기...를 클릭합니다."환경 변수" 창 중간에

  4. "New User Variable" 창에서 "Variable name"에 대한 R_LIBS와 작성한 개인 라이브러리 디렉토리의 경로(예: C:\User\Rlibs)를 입력합니다.

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

  6. 확인을 다시 클릭합니다.

R하고 명령어 R(Rstudio)을합니다..libPaths()당신은 R 시스템 라이브러리뿐만 아니라 당신이 만든 개인 라이브러리도 봐야 합니다.

Mac의 경우:

  1. "홈" 또는 "사용자 이름" 디렉토리에 Rlibs라는 폴더를 만듭니다.

  2. 터미널 응용 프로그램 시작

  3. 유형:echo "R_LIBS=~/Rlibs" > .Renviron철자와 대소문자가 일치하는지 확인합니다.

  4. ls -a디렉토리에 있는 전체 파일 목록을 확인합니다. 이제 를 포함해야 합니다.렌브리온

  5. 를 확인합니다.Renviron 파일이 올바르게 설정되었습니다.more .Renviron

하고 R/R을 입력합니다..libPaths()그리고 당신은 당신의 개인 도서관으로 가는 새로운 길을 보아야 합니다.

관리자 권한이 없는 경우 다음을 여는 것도 도움이 될 수 있습니다.Rprofile.site-파일은 \R-3.1.0\etc에 위치하고 다음을 추가합니다.

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

이것은 다음을 평가합니다..libPath()에서 직접 합니다.

관리자 권한이 없는 디렉토리에서 R 라이브러리의 기본 폴더만 변경합니다.

.libPaths("C:/R/libs")

Ubuntu에서 사용자의 기본 라이브러리 경로를 변경하는 권장 방법은 다음과 같습니다.R_LIBS_USER입니다.~/.Renvironjava.

touch ~/.Renviron
echo "R_LIBS_USER=/custom/path/in/absolute/form" >> ~/.Renviron

저는 이것을 이해하는 데 정말 어려움을 겪었습니다.마지막으로 OS & R 스튜디오를 다시 설치했을 때 Gorkypl은 위의 올바른 솔루션을 제공했지만 이번에는 환경 변수 설정이 해결되지 않았습니다.

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

R_LIBS_USER 사용자 변수를 원하는 디렉터리에 정의하고(고리플의 답변에 따라) 사용자 변수가 로드되도록 컴퓨터를 다시 시작합니다.R studio를 엽니다. 오류가 사라져야 합니다.

사용할 수도 있습니다.Sys.setenv()R_LIBS_USER를 컴퓨터를 다시 시작할 필요가 없는 대체 라이브러리의 경로로 수정합니다.

: R_LIBS_USER 파일:?Sys.getenv()

help(Startup)유용합니다.

새 버전의 R을 설치한 후 또는 다른 방법으로 기본 패키지 라이브러리를 변경한 경우 아래 명령을 사용하여 두 라이브러리를 모두 추가하여 모든 패키지를 사용할 수 있습니다.기존 라이브러리 경로 가져오기:

.libPaths()

이제 기존 경로와 이전 경로를 설정합니다.

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

도움이 되길 바랍니다.

나는 읽었습니다.명령행에 .libPaths()를 사용하여 어떤 경로가 있는지 확인합니다.저는 아까 2개의 도서관 경로가 있었습니다.원하는 위치에 .libpath("C:/Program Files/R/R-3.2.4 revised/library") 명령을 사용하면 라이브러리 경로가 변경됩니다.명령줄에 .libPaths()를 다시 입력하면 올바른 경로가 표시됩니다.이것이 도움이 되길 바랍니다.

getwd()
# [1] "C:/Users/..../software/My R studio"

이중 역콤마로 위의 링크를 복사합니다.

.libPaths(new="C:/Users/..../software/My R studio")

패키지 설치를 위한 기본 경로가 변경됩니다.

R에 입력할 때마다 .libPath()를 호출하지 않고 라이브러리 경로를 영구적으로 변경하려면 다음과 같이 하십시오.

  1. 만들다.홈 디렉토리 아래에 있는 Rprofile. (~/.Rprofile

  2. 형자.libPaths(c( .libPaths(), "your new path" )).파일에Rprofile 파일에 저장합니다.

  3. 의 디렉토리한 후 R(으)로 합니다. 그냥 입력합니다..libPaths()리바레이 경로가 업데이트되었음을 확인할 수 있습니다!

여기에 나와 있는 대부분의 답변은 Windows 및 Mac OS와 관련되어 있기 때문에 (나도 이 문제를 해결하는 데 어려움을 겪었다는 점을 고려하여) Arch Linux 설정에 이 문제를 해결하는 데 도움이 되는 프로세스를 게시하기로 결정했습니다.

1단계:

  • 해당 용어에 대해 시스템 전체 검색(: ENERGYSearch)을 수행합니다.Renviron(사용자 라이브러리에 대한 설정이 설정된 구성 파일).
  • 에서 두 . 즉, " " " " " " 입니다.
    1. /etc/R/
    2. /usr/lib/R/etc/
      참고: 1과 2(위)에 저장된 구성 파일은 서로링크됩니다. 즉, 편집 중인 파일을 저장할 때 한 파일에 대한 변경 사항이 다른 파일에 [동일한 형식/구조로] 자동으로 적용됩니다. [편집 파일 저장 권한도 필요합니다].

2단계:

  • 번째 경로로 합니다./etc/R/)을 열고 를 엽니다.Renviron즐겨찾는 텍스트 편집기로 파일을 만듭니다.
  • 일단 안에 들어가면, 안에.Renviron:R_LIBS_USER원하는 디렉토리 경로로 물결 괄호 섹션의 텍스트에 태그를 지정하고 업데이트합니다.

    설정:
    변경 위치(원래 항목):
    R_LIBS_USER=${R_LIBS_USER-'~/R/x86_64-pc-linux-gnu-library/4.0'}
    원하는 항목으로 변경:
    R_LIBS_USER=${R_LIBS_USER-'~/Apps/R/rUserLibs'}

3단계:

  • 저장Renviron방금 편집한 파일... 완료!!

저도 같은 문제를 겪었고, 이 문제에 부딪혔습니다.다른 위치를 생성하려는 경우c("C:/Users/mynewlocation")역시 작동하고 있어야 합니다.여기에서 언급한 바와 같이 "R studio를 마우스 오른쪽 버튼으로 클릭할 수 있어야 합니다.exe 아이콘을 클릭하고 속성을 클릭한 다음 항상 Rstudio를 관리자로 실행하는 옵션을 선택합니다.R studio를 열고 싶을 때마다 같은 아이콘을 사용해야 합니다."

    myPaths <- .libPaths()   # get the paths
myPaths <- c(myPaths[2], myPaths[1])  # switch them
.libPaths(myPaths)  # reassign them

R이 기본 위치에 설치하는 데 문제가 있고 대신 패키지를 temp 폴더에 넣는 중이었기 때문에 저는 이것을 조사하고 있었습니다.이것은 R에 문제가 있는 것으로 보이는 McAfee Endpoint Security의 최신 업데이트인 것으로 밝혀졌습니다.패키지를 설치하는 동안 위협 방지를 비활성화할 수 있으며 올바르게 작동합니다.

언급URL : https://stackoverflow.com/questions/15170399/change-r-default-library-path-using-libpaths-in-rprofile-site-fails-to-work

반응형