2014-11-18 2 views
4

R을 사용하여 Hadoop Streaming 용 감속기를 구현하려고합니다. 그러나 R, dplyr..etc 등의 내장 라이브러리가 아닌 특정 라이브러리에 액세스하는 방법을 알아야합니다.R 쉘에서 패키지 설치

(1) 감속기 코드에서, 그들은 다음과 같이 세션이 완료되면 배치 될 임시 폴더에 필요한 라이브러리를 설치하고 :

.libPaths(c(.libPaths(), temp <- tempdir())) 
install.packages("dplyr", lib=temp, repos='http://cran.us.r-project.org') 
library(dplyr) 
... 
두 가지 방법이있다처럼 내 연구를 바탕으로 보인다

그러나이 방법은 설치하려는 라이브러리의 수에 따라 극적인 오버 헤드가 발생합니다. 따라서 대부분의 경우 라이브러리 설치에 낭비 될 것입니다 (dplyr와 같은 정교한 라이브러리는 바 이노 R 세션에 설치하는 데 수 분의 시간이 걸릴 수 있습니다).

내가 손에 들어가기 전에 설치해야하는 것처럼 들리므로 접근 2로 연결됩니다.

(2) 클러스터가 상당히 큽니다. 그리고 Anabilities와 같은 도구를 사용하여 작동시켜야합니다. 따라서 라이브러리를 설치하기 위해 하나의 Linux 쉘 명령을 사용하는 것을 선호합니다. 나는 R CMD INSTALL...을 전에 보았지만, R 콘솔에서 install.packages()을 수행하는 대신 원본 파일에서 패키지를 설치하고, 미러를 찾아 내고, 소스 파일을 가져 와서 한 명령으로 설치하는 것처럼 느껴졌다.

누구나 비 대화식으로 R 패키지를 설치하기 위해 쉘에서 하나의 명령 줄을 사용하는 방법을 보여줄 수 있습니까? (사람이 심지어 권리 phylosophy을 다음 있지 않다 생각하면이 모든 클러스터 R 패키지를 관리 할 방법이 많은 배경 지식 죄송합니다, 코멘트에 남겨 주시기 바랍니다.)

답변

3

Dirk 's littler는 상당히 흥미 롭지 만 그 기능을 사용하려면 install.r 스크립트를 배포해야하므로 간단하지가 않습니다. 이것은 대화식으로 작업 할 때 문제가되지 않지만 자동 설치 스크립트의 경우 약간의 오버 헤드가 추가됩니다. 아마도 Dirk이이를위한 몇 가지 예제를 추가 할 수 있습니다.

그래서 대안은 다음과 같습니다

Rscript -e 'install.packages("drat", repos="https://cran.rstudio.com")' 
+1

나는 당신의 점을 이해하지 않는 -'install.r'가의 littler 함께 제공하고 우리가/usr/지방'에 소프트 링크를 설치하는 경향이/bin'. 그러면 그것은 단지'install.r drat'입니다. 그리고 그만한 가치가있는, 우리는'install.r'과'install2.r' (커맨드 라인 옵션을 지원합니다)을 로커에서 많이 사용합니다. 예 : [this Dockerfile] (https://github.com/rocker-org/hadleyverse/blob/master/Dockerfile)을 참조하십시오. –