私はすでに何度も次の問題に遭遇しました。
2つのクラスがclassA
ありclassB
、次のファイルで説明されているとしますclassA.R
。
#' 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
、そうではありません。パッケージをビルドしようとすると、次のエラーが発生する可能性があります。
roxygenize("./myExample")
Error in getClass(Class, where = topenv(parent.frame())) :
"ClassA" is not a defined class
roxygenize()
ファイルを読み取る順序、つまりどのクラス定義を他のクラス定義よりも先に読み取る必要があるかを確認するにはどうすればよいですか?
注:私は自分の質問に答えたことを知っています。これは、私がこの問題に頻繁に遭遇し、のコードを見て、これを行うための適切な方法を実現したためですroxygen2
。参考までに、これが私の調査結果です。