2012-01-22 9 views
7

roxygen2를 사용하여 자동으로 패키지를 roxygenize하는 스크립트를 작성하고 있습니다. 패키지를 준비하고 설치하는 큰 스크립트의 일부가 될 수 있도록 실행 가능하도록하고 싶지만, Rscript와 함께 작동하지 않을 수 있습니다. 내가 대화 형 R 세션을 시작하거나 경우Rscript 배치 파일에서 roxygenize 함수를 호출 할 수 없습니다.

#!/usr/bin/env Rscript 
library(roxygen2) 
roxygenize('.', copy=FALSE) 

이 제대로 작동 내가 R CMD 배치를 사용하여 코드를 제출하는 경우 : 여기

는 코드입니다. 그러나 Rscript를 통해 실행 파일로 직접 스크립트를 실행하면이 출력과 오류가 발생합니다 (스크립트가 현재 디렉토리 또는 bin에 있는지 여부에 관계없이 오류가 발생합니다).

bin/roxygenize.R 
Loading required package: digest 
Warning message: 
package 'roxygen2' was built under R version 2.13.2 
Error in parse.files(r_files) : could not find function "setPackageName" 
Calls: roxygenize -> parse.files 
Execution halted 

setPackageName이 기본 R에있는 것처럼 보입니다. 왜 그것이 존재하지 않는지 알 수 없습니다. 또한, 나는 많은 다른 상황에서 Rscript를 사용하고 이것이 실패한 유일한 장소 인 것 같습니다.

도움을 주시면 감사하겠습니다.

+5

이것은 roxygen의 버그입니다. 다음 버전이 나올 때까지 메서드와 유틸리티를 명시 적으로로드하여 해결하십시오. – hadley

+0

고마워, 해들리. 왜 내가 너트를 몰고 왔는지 몰랐다. –

답변

5

roxygen2을로드하고 roxygenize()을로드하기 전에 methodsutils 패키지를 명시 적으로로드하십시오.

#!/usr/bin/env Rscript 
library(methods) 
library(utils) 
library(roxygen2) 
roxygenize('.', copy=FALSE) 
+0

매력처럼 작동했습니다. 감사합니다! – dardisco