2011-03-30 13 views
7

R 패키지를 만들었지 만 사용자가 사용하기 전에 설치해야하는 것은 아닙니다.패키지를 R에 설치하지 않고 어떻게로드합니까?

패키지를 설치하지 않고도 패키지를로드 할 수 있습니까? 나는 패키지 mypackage.tar.gz이있는 경우

예를 들어,

library("mypackage.tar.gz") 

같은 뭔가가있다?

+0

사람들이 왜 패키지를 설치하지 않겠습니까? 그리고, 아니, 네가 원하는 것을 할 수 없다고 생각한다 - 라이브러리()가 작동하도록 파일을 설치해야한다. AFAIK는 R에서 실제로 패키지를 사용하는 유일한 방법이다. . 당신은 모든 세션에서 현재의 세션으로 모든 R 코드를 소스화할 수있다. 심지어 패키지처럼 보이지만, 도움이나 의존성의 로딩은 없다. –

+2

-1 r-help에 대한 크로스 게시 –

+2

@Grothendieck 당신은 다른 사이트에서 답을 찾으려고 노력하면서 저를 downvoting하고 있습니까 ??? – lindelof

답변

9

실제로 패키지를 설치해야한다고 제안하는 "합창"에 참여할 예정입니다.

Hadley의 devtools 패키지를 살펴보면 전역 작업 영역에 덤프하지 않고 패키지를 작업 영역으로로드 할 수 있습니다.

패키지는 untar/unzip하고 표준 R 패키지 구조를 따라야합니다.

그래도 작동하려면 사용자가 devtools 패키지를 설치해야합니다. 그래서 ... 이것이 어떤 유형의 승리가 될지 확신하지 못합니다.

3

만은 설치하지 않고로드 할 코드를해야하는 경우가 원시 R 스크립트 소스 가지고 : 당신이 다른 기능이있는 경우

source(myScript.R) 

, 당신은 단지 모든로드하는 R 스크립트를 만들 수 있습니다 필요한 소스 파일 내가 개발할 때 때때로하는 일은 모든 함수 F_some_function.R과 클래스 Class_some_function.R의 이름입니다. 이 날 다음 코드가 포함 된 기본 파일 소스 할 수 있습니다 : 당신이 tar로 파일을 제공하는 경우

funcdir <- "C:/Some/Path" 
files <- dir(funcdir) 
srcfiles <- c(grep("^Class_",dir(funcdir),value=T), 
       grep("^F_",dir(funcdir),value=T) 
) 

for(i in paste(funcdir,srcfiles,sep="/")) source(i) 

를, 그들은 주 파일을 소싱하기 전에 자신이 untar()를 사용하여 압축을 풀어야 할 수 있습니다.

하지만 솔직히 패키지를 사용하십시오. 전역 환경 (또는 local = T를 사용하면 지정된 환경)에서 모든 것을로드하지만 패키지의 모든 기능을 잃게됩니다. 패키지 설치는 번거롭지 않으며 둘 다 제거하지 않아도됩니다.

C 드라이브에 대한 권리를 쓰는 문제 (제화물을 만난 패키지를 사용하지 않는 유일한 이유)는 다른 라이브러리 위치를 쉽게 설정할 수 있습니다. R 2.12는 실제로 Windows에서이 작업을 수행합니다. ?.libPaths()

+0

여기, 여기에. 패키지가 이유 때문에 발명되었습니다! –

관련 문제