Pau*_*die 13 documentation r roxygen s4 roxygen2
一个简单的例子是我创建了一个扩展名show
,这是一个S4基本方法.我不希望通过show
在我的包中重新记录来导致消除歧义,我还想通过添加别名来合并我的扩展show
的文档到新类的文档myPkgSpClass
中show,myPkgSpClass-method
.
#' @export
#' @aliases show,myPkgSpClass-method
#' @rdname myPkgSpClass-class
setMethod("show", "myPkgSpClass", function(object){ show(NA) })
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,这会在roxygen2构建文档期间导致严重警告,Rd files with duplicated alias 'show':
因为show
此包中有多个类扩展,并且roxygen2已自动将别名列表中的通用术语添加到所有相关*-class.Rd
文件:
\alias{show}
\alias{show,myPkgSpClass-method}
Run Code Online (Sandbox Code Playgroud)
但我认为我不想在任何实例中使用通用别名,因为它会强制需要show
在我的包和基础之间消除歧义show
.此问题也适用于从其他包扩展的其他S4方法show
.
如果我将所有特定于类的方法标记到同一个.Rd
文件中,那么警告就会消失,但是模糊性仍然存在,因为show
别名仍会自动添加到该文档条目中.如果我手动\alias{show}
从.Rd
文件中删除,那么问题似乎已解决,在roxygen期间没有警告R CMD check pkgname
.那么如何让Roxygen2不添加通用别名呢?
其他背景:
这是从前一个问题构建的特定问题,用于将S4扩展导出/记录到基本方法: 是否需要在R包中导出基本方法扩展?文档含义?
关于使用Roxygen2记录S4方法/类的以下问题,它更具体,而不是包含在内:
似乎已在 roxygen2_3.1.0 中修复:
#' @export
#' @aliases show,myPkgSpClass-method
#' @rdname myPkgSpClass-class
setMethod("show", "myPkgSpClass", function(object){ show(NA) })
Run Code Online (Sandbox Code Playgroud)
生成 myPkgSpClass-class.Rd:
\docType{methods}
\name{show,myPkgSpClass-method}
\alias{show,myPkgSpClass-method}
\usage{
\S4method{show}{myPkgSpClass}(object)
}
\arguments{
\item{object}{Any R object}
}
Run Code Online (Sandbox Code Playgroud)
正如 Hadley 所说,您不再需要显式设置别名或 rd 名称,例如:
#' my title
#' @export
setMethod("show", "myPkgSpClass", function(object){ show(NA) })
Run Code Online (Sandbox Code Playgroud)
将生成 show-myPkgSpClass-method.Rd:
\docType{methods}
\name{show,myPkgSpClass-method}
\alias{show,myPkgSpClass-method}
\title{my title}
\usage{
\S4method{show}{myPkgSpClass}(object)
}
\arguments{
\item{object}{Any R object}
}
\description{
my title
}
Run Code Online (Sandbox Code Playgroud)
请注意,在这种情况下您必须设置描述。如果文档条目为空,它将不会生成文档页面。