2014-03-13 2 views
2

내 패키지 중 하나에서 패키지 (즉, 'robfilter')를 가져 오는 동안 문제가 발생했습니다. 내가 사용하려고 그 방법 중 하나 adore.filter,이 라인에서 실패 : '데이터 세트'오류와data() - 데이터 세트를 사용하여 R 패키지 네임 스페이스 문제가 발생했습니다.

data(critvals) 

critvals '을 (를) 찾을 수 없습니다'.

require (robfilter)를 통해 라이브러리를로드하면 함수가 제대로 작동합니다. 그러나 이것은 adore.filter를 호출하는 커스텀 패키지를 사용하기 위해서 자신의 패키지를로드하고 robfilter를로드해야한다는 것을 의미합니다. 큰 문제는 아니지만 약간 성가시다.

내 패키지 내에서 비평을 볼 수있게하기 위해해야 ​​할 추가 단계가 있거나 패키지 작성자가해야 할 일이있을 수 있는지 없는지 확실하지 않습니다. done) 패키지 네임 스페이스에 criticle을 추가합니다. robfilter NAMESPACE 파일에 'critvals'기호가 없습니다. 전에이 문제가 발생하지 않았으며 실제로 패키지 내부의 data() 사용 방법을 이해하지 못했습니다.

답변

2

이 질문 유형에 가장 적합한 리소스는 Section 1.5 of "Writing R Extensions"입니다.


그것은 문제가 패키지 (들) (즉, 위치, 이름 등)의 파일에 대한 모든 정보를 모르고 어디에 있는지 다소 어려운,하지만이 도움이 될 수 있습니다. 패키지에 데이터를 가져 오는 데에는 몇 가지 다른 방법이 있습니다.

먼저 data 하위 디렉토리를 만들고 data()을로드하거나 필드를 DESCRIPTION 파일에 포함시킬 수 있습니다.

자신의 패키지에있는 다른 패키지의 데이터/변수를 사용하려면 데이터/변수가 들어있는 패키지의 NAMESPACE 파일에 export 지시어와 패키지에 import 지시어가 필요합니다 데이터를 사용할 것입니다.

예를 들어, 네임 스페이스 파일에 export(critvals) 행을 포함하면 변수 critvals이 전역으로 가져올 수 있습니다.

importFrom(robfilter, critvals) 지시어는 robfilter 패키지로 이동하여 critvals을 가져 오려고합니다.


또한 이중 콜론 ::를 사용하여 패키지 함수의 네임 스페이스 (데이터)를 가져올 수 있습니다. 예를 들어, 우리가

Lahman::Batting 

패키지가 설치되어 제공 사용할 수 있습니다,로드 패키지 Lahman없이 단지 Lahman 프로 야구 데이터베이스의 타격 표를 가져옵니다. 데이터가 즉시 인쇄되므로 할당하는 것이 가장 좋습니다.

+0

감사합니다. 내 패키지에서 사용할 필요가 없습니다. robfilter 패키지가 내부적으로 사용할 수있게하려고합니다. 나는 왜 그것을 찾을 수없는 것 같지 않은지 여전히 확신하지 못합니다. adore.filter를 호출하기 전에 내 코드에 crit- << robfilter :: critvals를 할당하여 해결했습니다. – pteehan

+0

'example (environment)'의 결과를 확인하고 싶을 것입니다. –

관련 문제