记录和导出已存在于base中的S4泛型方法

时间:2013-09-04 02:37:21

标签: r package s4 roxygen2

我的问题与this unanswered question中概述的问题基本相同,导致提交并成功关闭错误报告。

鉴于现有的S4 generic,在我的案例diagdiag<-中,我希望从另一个包中导出S4 class的实现。

阅读another thread我发现如果我分别使用标签@exportMethod diag<-@exportMethod diag,我可以成功导出这些功能,但我无法使用该文档。< / p>

第一个帖子和后续关闭的bug报告表明以下内容应该有效(在本例中为方法show):

#' @export
#' @aliases show,myPkgSpClass-method
#' @rdname myPkgSpClass-class
setMethod("show", "myPkgSpClass", function(object){ show(NA) })

但是当我尝试对diag执行以下操作时,我在尝试构建时出错:

#' @export
#' @aliases diag<-,big.matrix-method
#' @rdname bigmatrix-diag
setMethod("diag<-", signature("big.matrix"), function(x, value) {
  SetDiag(x@address, value) # C++ implementation
  x
})

#' @export
#' @aliases diag,big.matrix-method
#' @rdname bigmatrix-diag
setMethod("diag", signature("big.matrix"), function(x) {
  GetDiag(x@address) # C++ implementation
})

错误: Error : Sections \title, and \name must exist and be unique in Rd files

澄清:目前此类没有diag的实施。

编辑:解决错误: 我可以解决此错误,但不能破坏diag的现有文档。

如果我按如下方式添加唯一名称和标题,它将成功构建:

#' @name diag
#' @title Extract and Replace the diagonal from a big.matrix
#' @aliases diag<-,big.matrix-method
#' @docType methods
#' @exportMethod diag<-
#' @rdname bigmatrix-diag
setMethod("diag<-", signature("big.matrix"), function(x, value) {
  SetDiag(x@address, value)
  x
})

#' @name diag
#' @title Extract and Replace the diagonal from a big.matrix.
#' @aliases diag,big.matrix-method
#' @docType methods
#' @exportMethod diag
#' @rdname bigmatrix-diag
setMethod("diag", signature("big.matrix"), function(x) {
  GetDiag(x@address)
})

但是当我在R会话中键入?diag时,我收到错误:

Error in (function (path, query, ...) : replacement has length zero

我认为这意味着它s finding two helpfiles for diag`。

1 个答案:

答案 0 :(得分:1)

你可以尝试一下吗?

#' @name diag
#' @aliases diag,big.matrix-method
#' @export diag
#' @rdname bigmatrix-diag
setMethod("diag", signature("big.matrix"), function(x) {
  GetDiag(x@address) # C++ implementation
})