다음과 같은 문제가 여러 번 발생했습니다.roxygen2를 사용할 때 S4 방법을로드하는 순서를 지정하는 방법
#' the class classA
#'
#' This is a class A blabla
#' \section{Slots}{\describe{\item{\code{A}}{a Character}}}
#' @ name classA
#' @rdname classA
#' @exportClass classA
setClass("classA",representation(A="character"))
그리고 classB.R
#' the class classB
#'
#' This is a class B blabla
#' \section{Slots}{\describe{\item{\code{B}}{an object of class A}}}
#' @ name classB
#' @rdname classB
#' @exportClass classB
setClass("classB",representation(B="classA"))
나는 이러한 파일 roxygen2
의 알파벳 순서로 읽은 믿고 있지만 :
classA
및
classB
다음 파일
classA.R
에 설명을 말해봐 그렇지 않다.
roxygenize("./myExample")
Error in getClass(Class, where = topenv(parent.frame())) :
"ClassA" is not a defined class
가 어떻게 roxygenize()
어떤 순서로 파일을 읽을 알고 있는지 확인 할 수 있습니다, 클래스 정의는 다른 전에 읽어야 즉 : 나는 패키지를 빌드하려고하면, 나는 다음과 같은 오류가 발생할 수 있습니다?
참고 : 나는 내 자신의 질문에 대답했습니다. 그 이유는이 문제가 자주 발생하여 roxygen2
코드를 살펴본 후이를 수행 할 수있는 적절한 방법을 깨닫게 되었기 때문입니다. 참고로 여기 내 연구 결과가 있습니다.
?collate_roclet
에서 설명한 바와 같이
, 당신은 어떤 전에 반드시 숙지해야하는 클래스 지정 @include 태그를 사용할 수 있습니다 :
당신이'@ include' 태그를 놓친 것 같아요. – hadley
@hadley 제 질문에 쓴 것처럼'@ include' 태그를 시도했고 다른 클래스의 도움말 파일을 병합했습니다. 내 의도가 아님). Collate 필드를 사용하여 잘 작동하지만, 다음 번 roxygen 버전에서이를위한 우아한 솔루션을 통합 할 시간과 영감을 얻길 바랍니다. –
'@ include'는 한 부씩 인쇄에서 다른 것을 변경해서는 안됩니다. 최소한의 재생산 가능한 예제를 제공 할 수 있습니까? – hadley