3

我的问题与这个未回答的问题中概述的问题基本相同,该问题导致提交并成功关闭了错误报告。

给定一个现有的S4 generic, 就我而言diag和,我希望从另一个包diag<-中导出一个实现。S4 class

阅读另一个线程,我发现如果我分别使用标签@exportMethod diag<-和,我可以成功导出这些函数@exportMethod diag,但我无法让文档正常工作。

第一个线程和随后关闭的错误报告表明以下应该有效(在这种情况下为方法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)
})

但是当我输入?diag一个 R 会话时,我得到了错误:

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

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

4

1 回答 1

2

你能试试这个吗?

#' @name diag
#' @aliases diag,big.matrix-method
#' @export diag
#' @rdname bigmatrix-diag
setMethod("diag", signature("big.matrix"), function(x) {
  GetDiag(x@address) # C++ implementation
})
于 2013-09-04T11:18:36.567 回答