我有一些带有 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 方法?注意:真正的功能不是微不足道的。