2016-09-02 2 views
0

C++ 통합을 위해 Rcpp 패키지를 개발했습니다. RcppExport를 사용하여 함수가 SEXP 객체를 반환하도록했습니다.R 패키지와 R 패키지 통합 : CPP 코드 객체 문서

문제는 travis-ci가 문서화되지 않은 코드 객체가 있음을 경고하는 것으로 보입니다. (이들은 cpp 함수입니다). 그러나 사용자가 해당 기능에 직접 액세스하는 것을 원하지 않습니다.

이 문제를 어떻게 해결할 수 있습니까? 이러한 기능을 어떻게 문서화 할 수 있습니까?

+4

Rcpp C++ roxygen 설명을 사용하고 있습니까? – hrbrmstr

+0

아니요. 저는 그것을 사용하지 않았습니다. roxygen 주석을 추가하면 문서 생성에 도움이됩니까? – Malith

+0

Rcpp roxygen 주석의 접두어는'# '대신'//''' – coatless

답변

3

여기에는 기본적인 오해가있는 것 같습니다.

당신의 NAMESPACE 와일드 카드가 포함되어있는 경우 명확하게이 도움말 항목을 필요로 문서화되어 exportPattern("^[[:alpha:]]+") 각 전역 심볼이 수출되고 및 당 R 표준 '을 모두 수출'.

하나의 쉬운 해결 방법은 모든 것을 내보내는 것이 아니라 내보내려는 항목에 대한 문서를 작성하는 것입니다. 우리는 때때로이를 수행하고 foo_impl과 같은 Rcpp 함수를 호출 한 다음 R 함수 foo (설명서 포함)을 foo_impl으로 호출해야합니다. 이 경우에는 foo을 내보내고 모두 좋을 것입니다.

간단히 말해서 R 패키지에 대해 혼란스러워하며 Rcpp입니다. 그들이하는 일에 대한 느낌을 얻기 위해 소스 (작은) Rcpp 패키지을 다운로드하는 것이 좋습니다.

+0

_roxygen2_ 패러다임 내에서 원하는 기능을 내보내려면 R 코드의 경우 '#'@ export'를 사용하고 cpp의 경우 '@'는 'export'를 사용하십시오. – coatless

+0

그게 내가 (개인적으로) 반대하는 _option_이지만, 그 싫어하는 것은 단지 나일 수도 있습니다. 귀하의 마일리지는 다를 수 있으며, 10 단어의 추천은 귀하가 가질 수있는 모든 선택을 과소 평가할 수 있습니다. –

+0

roxygen2가 여전히 네임 스페이스를 제어하기 때문에'exportPattern ("^ [[: alpha :]] +")'를 제거한 후에 새로운 질문을 _sense 할 수 있습니다. 프로 액티브. – coatless