我的问题与this unanswered question中概述的问题基本相同,导致提交并成功关闭错误报告。
鉴于现有的S4 generic
,在我的案例diag
和diag<-
中,我希望从另一个包中导出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`。
答案 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
})