为多个类导出S3方法(具有多个赋值)

时间:2014-12-11 06:42:03

标签: roxygen

我有一个包含S3泛型和几种方法的包。我使用相同的函数来处理多个类,因此我将相同的函数分配给多个名称。我遇到的具体问题是roxygen2没有意识到两个变量都绑定到S3方法,并且没有包含@S3method指令,它无法导出一些S3方法。但是,这会导致弃用警告(" @ S3方法已弃用。请改用@export")

以下(人为的)小例子说明了这个问题:

#' The size of an object.
#' The size of an object
#' 
#' @export
size  <- function(x) UseMethod('size')

#' @export
size.default  <-  function(x) "I dunno" 

#' @export
#' @S3method size matrix
size.data.frame  <-  
size.matrix  <-  function(x) prod(dim(x))

#' @export
#' @S3method size character
size.factor  <-  
size.character  <-  function(x) length(x)

#' @export
#' @S3method size integer
size.double  <-  
size.integer  <-  function(x) sum(x)

我无法找到一种方法来导出矩阵,字符和整数方法,而不使用已弃用的@S3method指令。有没有办法在不使用弃用指令的情况下导出这些方法?

谢谢!

1 个答案:

答案 0 :(得分:1)

最简单的方法是使用两行:

#' @export
size.matrix  <-  function(x) prod(dim(x))
#' @export
size.data.frame  <-  size.matrix