记录 S4 泛型的 R 不显示使用情况


这个问题

已经在这个堆栈溢出问题中被问过了,但接受的答案(从作者的存储库下载 S4 分支)对我不起作用,我认为可能有更好的方法来实现相同的目标。

我的文件generics.R中有以下内容:

#' @rdname myfunction-methods
#' @name myfunction <- without this, roxygen2 complaints about missing name
#' @export
methods::setGeneric("myfunction",
  function( arg1, arg2 ),
      arg3, arg4 {
        methods::standardGeneric("myfunction")
});

然后在我的文件中mymethods.R

#' Something
#'
#' A brief description
#'
#' @param all params... 
#' @return Something
#' @name myfunction <- without this, roxygen2 complaints on missing name
#' @include generics.R
#' @rdname myfunction-methods
#' @export
methods::setMethod( "myfunction",
  methods::signature( arg1 = "formula", arg2 = "data.frame" ),
  function( arg1, arg2, arg3, arg4 ) {
   ...whatever 
    }
)

有了这个,一切都很好,除了usage部分没有出现。您能否纠正我的文档中的错误?更准确地说:

    在 setMethod 之前编写文档
  1. 是否正确,还是最好在 setGeneric 之前编写文档?

  2. 为什么两个文件中都需要@name?应该不一样吗?有关系吗?

  3. 我需要在两个文件中@export吗?

  4. @alias会有帮助吗?

提前非常感谢你。

我无法回答您的所有问题,但也许以下有帮助:

  1. 我认为您可能会遇到问题,因为roxygen2无法识别methods::setMethod并在解析文件时methods::setGeneric。您必须避免使用:: - 通常不只是在这里 - 通过 #' @import methods 将方法包导入您的命名空间。然后直接调用 setMethodsetGeneric,而不引用包。

当这不能解决您的问题时,您可以随时手动定义使用条目,并且仍然使用 roxygen2,如下所示:#' @usage S4method{myfunction}{formula,data.frame}(arg1, arg2)

相关内容

  • 没有找到相关文章

最新更新