プロットの新しいメソッドを定義したいパッケージを作成しています。roxygen のインソース ドキュメントを使用しています。この質問は、Roxygen を使用して、別のパッケージのジェネリックの S3 メソッドを適切に文書化する方法は? と非常に似ているよう です。 および Roxygen2 - S3 メソッドを適切に文書化する方法 ですが、まだ機能させることができません。
問題を引き起こしている関連部分は次のとおりです。
#' Generic plot method
#'
#' @param x \dots
#' @param ... \dots
#' @export
plot <- function(x, ...) UseMethod("plot")
#' Default plot method
#'
#' @param x \dots
#' @param ... \dots
#' @importFrom graphics plot
#' @method plot default
#' @S3method plot default
plot.default <- function(x, ...) graphics::plot(x, ...)
#' Plotting function for ABI object
#'
#' Description.
#'
#' @param x ABI object as generated by newABI.
#' @param base Character. Bases to look at.
#' @param ... Other options passed to plot().
#' @return Nothing. Side-effect: plots graphs.
#' @method plot ABI
#' @S3method plot ABI
plot.ABI <- function(x, base, ...) {
#Overly simplified
plot(1, 1, main = base)
}
これを実行してメソッド (プロット) を調査すると、ABI オブジェクトに対して定義されたメソッドがありません。ABI:::plot (ABI はパッケージの名前) による関数へのアクセスは機能します。:: を使用することはできません。
パッケージのビルド チェック中に、次の警告が表示されます。
* checking S3 generic/method consistency ... WARNING
plot:
function(x)
plot.ABI:
function(x, base, ...)
See section ‘Generic functions and methods’ of the ‘Writing R
Extensions’ manual.
議論には賛否両論あるようです。しかし、ジェネリックには引数 x と ... があり、(ベースに加えて) 私の ABI メソッドもそうであるため、これを理解していません。
したがって、2 つの問題がありますが、これは同じ問題から生じることを願っています。plot.ABI メソッドがエクスポートされず、パッケージ チェックで警告がスローされます。
これを解決するにはどうすればよいですか?