S3 クラスを含む R コードがいくつかあります。いくつかのメソッドは複数のクラスを処理できます。その詳細を上流クラスのユーザーから隠そうとしています。簡単な例は次のようになります (クラス 2p、3p、3m の場合):
#' @export
foo <- function(myclass){
UseMethod("foo", myclass)
}
#' @export
foo.2p <- function(myclass){
return(myclass+2)
}
#' @export
foo.3p <- function(myclass){
return(myclass+3)
}
#' @export
foo.3m <- function(myclass){
return(myclass*3)
}
#' @export
bar <- function(myclass){
UseMethod("bar", myclass)
}
#' @export
bar.2p <- function(myclass){
return(2)
}
#' @export bar.3m
#' @export
bar.3p <- bar.3m <- function(myclass){
return(3)
}
私の問題は、roxygen2 が bar.3m を S3 メソッドとして正しく識別していないことです。@S3method bar.3m と明示的に言うと、roxygen2 は「@S3method は非推奨です。代わりに @export を使用してください」と警告します。roxygen2 に bar.3m が S3 メソッドであることを理解させるにはどうすればよいですか? 注: 実際の関数は自明ではありません。