2012-04-24 5 views
44

패키지를 R로 자동로드하는 방법을 제안 해 주시겠습니까? 나는 library('package name') 여러 번 사용할 필요없이 R 세션을 시작하고 싶습니다. ?Rprofile이 길기 때문에 (특히패키지를 R로 자동로드하는 방법은 무엇입니까?

... ?Rprofile 볼 가능성이 : 나는 당신의 .Rprofile 파일에 library(foo)을 넣어 또는 R_DEFAULT_PACKAGES을 설정 R.

+6

은 일반적으로 이것은 좋은 생각이 아니다. 다른 사람들과 코드를 공유하려고하면 추가 지침없이 스크립트를 실행할 수 없기 때문에 매우 만족하지 않을 것입니다. –

+1

원하는 모든 패키지를로드하고 (이름을 출력 한)'.Rprofile' /'Rprofile.site' 파일에'load_extra_packages()'함수를 정의한 다음, 세션 시작시 그 명령을 실행할 수 있습니다 - 완전히 자체가 아닌 경우 코드를 투명하게 만듭니다. –

답변

63

시작 내가 다음 번에 사용할 수 있습니다 모든 패키지를 다운로드 한 가정 당신은 아마 을 할 수 있기 때문에

If you want a different set of packages than the default ones when you start, insert a call to ‘options’ in the ‘.Rprofile’ or ‘Rprofile.site’ file. For example, ‘options(defaultPackages = character())’ will attach no extra packages on startup (only the ‘base’ package) (or set ‘R_DEFAULT_PACKAGES=NULL’ as an environment variable before running R). Using ‘options(defaultPackages = "")’ or ‘R_DEFAULT_PACKAGES=""’ enforces the R system default.

로드 기본 모든 패키지를 원하고 여분의 사람이 아니라 말보다 또한 (에, 기본 패키지의 일부를)로드하지, 당신은 EIT 수 있습니다) 협박 그녀는 넣어

library("mypackage1") 
library("mypackage2") 
[etc.] 

또는 options(defaultPackages=...)를 사용하여 :

표준 디폴트로 .Rprofile APPEND 에 원하는 패키지
options(defaultPackages=c(getOption("defaultPackages"), 
     "mypackage1","mypackage2", ... [etc.])) 

.

편집 (코멘트에서 복사)이 Rstudio에서 일을 얻고있는 : http://rstudio.org/docs/using/workspaces는 Rstudio가 .Rprofile 실행 제안하고 "에 설명 된 다른 작업을 수행 R 시작 [http://stat.ethz.ch/R-manual/R-patched/library/base/html/Startup.html]"(?Rprofile과 동일 함) . Rprofile.site을 본지 여부는 모호합니다.

편집 # 2 : 아래의 의견에 따르면 최신 버전의 Rstudio에서 작동합니다.

+2

'왜냐하면'?'Rprofile'은 길고 잠재적으로 위협적이기 때문입니다. 그것도, 그리고 좀더 조밀하고 * 완벽한 문서화입니다. 확실히 추천하는 독서. –

+0

고마워요. @Ben Bolker'Rprofile.site' 파일에'library (foo)'라는 줄을 추가하려고했는데 원하는 것을 얻지 못했습니다. 'foo'는 무엇을 의미합니까? 그게 뭐야? 로드하려는 결정된 패키지의 이름이되어야합니까? – Nestorghh

+3

죄송합니다. 'foo'는 구식의 "placeholder"변수입니다. 예를 들어,'library ("ggplot2"); 도서관 ("emdbook"); 라이브러리 ("quantreg"); library ("rms")'(포함시키고 자하는 실제 패키지의 예로서). –

15

당신은 당신이 그것에 library(package)를 추가하기 만하면 무엇 R.

의 새로운 세션을 시작할 때마다 실행되는 스크립트에 불과하다 .Rprofile라는 파일이 있습니다. 유닉스를 사용한다면 아마 홈 폴더에 숨겨진 파일로있을 것입니다.

7

Quick-R page on customizing R startup은 Ben 및 Joao의 답변과 기본적으로 동일한 정보를 포함하지만 조금 더 명확합니다. 홈 폴더에서 원하는 변경 (Windows에서 문서)와 Rprofile.site 파일의 사본을 만들고 전화 .Rprofile

편집 : 문서가 더 이상 폴더에서 R 3.0.0이 보이지 않는 것으로 나타났습니다하지만, 사용자의 홈을 사용 디렉토리 (사용자 이름) Windows 7에서. 이것은 설치 문제 일 수 있습니다 (즉, 이전에 R을 잘못 설치 한 경우). 그러나이 대답에 링크 된 Quick-R 페이지는이를 수행하는 올바른 방법을 알려줍니다. 다른 사람이이 문제를 겪고 있다면 해결 방법은 .Rprofile을 사용자의 홈 디렉토리에 복사하는 것입니다.

0

모두가 제안했듯이 빠른 답은 R 패키지를 .Rprofile 파일에 넣어야한다는 것입니다.

그러나 R은이 파일을 읽고 은 R 기본 패키지을로드합니다.?Startup에서 참조 : 당신이 원하는 패키지가/강화합니다로드 일부 R 기본 기능을 덮어 쓸 경우이 문제가 발생할 수 있습니다

Note that when the site and user profile files are sourced only the base package is loaded,

. tidyverse :: 필터 예를 참조하십시오 : https://github.com/tidyverse/dplyr/issues/1611

지금까지이 개 솔루션을 볼 수 있습니다

  1. 당신의 .Rprofile 파일의 첫 번째 줄에 사용 .First.sys() :이 일반적으로 독서 후 실행되는 명령입니다 패키지를 getOption("defaultPackages")에로드하는 .Rprofile.

  2. 업데이트 defaultPackages 옵션 : 당신의 .Rprofile에 library()를 사용하지 않지만, 같은. 그것의 라이브러리 호출이 있다면 다음이 더 독립적이 될 것입니다 반면, 그것은 당신의 설정에 대한 세션의 모든 후속 코드가 따라 만들기 때문에

    old <- getOption("defaultPackages") 
    options(defaultPackages = c(old, "tidyverse")) 
    
관련 문제