2011-03-10 5 views
20

약간 혼란 스럽습니다. 나는 psych 패키지의 principal 함수가 호출되는 작은 함수 (패키지의 시장 부분이 아님)가있는 R 패키지가 있습니다. DESCRIPTION과 NAMESPACE에서 정확하게 이것을 어떻게 지정합니까?R 패키지에서 다른 패키지의 함수를 올바르게 사용하는 방법

DESCRIPTION에 Depends: psych을 설정하면 내 패키지가로드 될 때마다 psych 패키지가로드됩니다. 이것은 효과가 있지만, 패키지의 작은 부분에 대해서는 중복되는 것처럼 보입니다.

Suggests: psych 설정 및 기능에 require("psych")를 입력이 psych가 설치되지 않은 경우 지금 무엇을, 그러나이 작동하지 않습니다, 그리고 이렇게 잘못된 방법이 될 것 같다 (R 확장을 작성하는 것은 주로 의미하는 제안이 말한다 예를 들어).

필자는이 기능을 가져와야한다고 생각합니다. 나는 설명에서 Imports: psych을 설정하고 NAMESPACE에서 importFrom(psych,"principal")을 시도했다. 이것은 작동하지만, 심령이 설치되어 있지 않은 컴퓨터에서는 패키지를로드 할 때 오류가 발생합니다.

+2

'정신력'은 훌륭한 패키지이며, 한 가지 기능 만 필요하지만 어느 시점에서 유용하다고 생각할 것입니다 (많은 도우미 기능이 있음). PCA/FA와 함께 행운을 빈다. =) – aL3xa

답변

18

대답해야 할 기본적인 질문은 "더 이상 노력하지 않고도이 기능을 모든 사용자가 사용할 수있게 하시겠습니까?"입니다. 그렇다면 imports + 적절한 네임 스페이스 선언을 사용하고, no이면 제안을 사용하고 require("psych")FALSE을 반환하면 유익한 오류 메시지를 인쇄하십시오.

수입 관련 불만 사항을 이해하지 못합니다. "심령이 설치되어 있지 않은 컴퓨터에서는 내 패키지를로드 할 때 오류가 발생합니다." 패키지가 종속되어있는 경우에도 마찬가지입니다!

+0

고마워요, 아주 명확히하고 나는 제안이 가장 적절하다고 생각합니다. 나는 수입에 대해 어리석은 실수를 저질렀다고 생각한다. 나는 CRAN에서 패키지를 설치할 때 의존 패키지 만 설치되는 것으로 생각했지만, 수입 된 패키지에서도 이런 현상이 발생 했을까? (zip 파일을 통해서만 설치하여 테스트) –

+0

예, 가져온 패키지는 패키지를 설치할 때 자동으로 다운로드됩니다. – hadley

+0

그렇다면 왜 'importFrom'이 필요한가요? S4 특유입니까? – mlt

관련 문제