可能的重复:
如何使用Roxygen2 正确记录S4类插槽
我想使用R Studio和roxygen2
构建一个包含S4 classes
的包。当我在包中引入几个S4 classes
时,我已经使用roxygen2
语法记录了我的所有函数。
现在我意识到没有现成的"@slot"功能。因此,我想知道如何像本线程中建议的那样,保留其他函数的所有文档工作,并手动记录S4 classes
?
或者换句话说,您建议构建一个同时包含老派函数和S4 classes
的包的工作流是什么?
编辑:您是否建议将R Studio构建的工具配置为不创建。Rd文件。手动roxygenize
,然后添加信息?尽管如此,这还是会导致覆盖手动生成的。类的Rd文件。。。
关于roxygen和S4类的常规信息
roxygen的第一个版本有一个@slot
标记,但该版本不再维护为支持roxygen2
。因此建议不要使用旧版本。
到目前为止,roxygen2
还没有真正支持S4类。哈德利正在努力实现roxygen3
(https://github.com/hadley/roxygen3)。如果你想尝试一下并感到勇敢:从github安装roxygen3
并尝试开发版本。请注意,此版本最终将合并到roxygen2
中,因此问题会及时自行解决。
关于您的工作流程:
我个人总是觉得使用roxygen和手动编写相结合是个坏主意。Rd文件。但是,如果必须,可以使用参数roxygen.dir
将roxygen的输出发送到另一个目录。通过这种方式,您可以将想要的任何内容复制回包目录,而无需覆盖手动编写的文件。
roxygenise("./mypackage", roxygen.dir="./myroxygendir")
我想做的是,简单地使用roxygen2
为你的类编写Rd文件,正如你链接到的线程中所解释的那样。你不必像你认为的那样出于某种未知的原因手动添加它们。你只需要像往常一样使用#'
来指示Rd块,并使用链接到的线程中给定的任何内容。如果你想让插槽成为一个单独的部分,你可以使用@section
标签来完成,就像下面的例子一样。
如何使用roxygen2
:添加插槽的示例
#' The MY class
#'
#' This class blabla yadayada
#'
#'@section Slots:
#' describe{
#' item{code{aslot}:}{Object of class code{"numeric"}, containing
#'whatever and a bit more}
#' item{code{anotherslot}:}{Object of class code{"character"}, containing
#' strings.}
#' }
#'
#' @note Yes, you can add notes
#' @name MY
#' @rdname MY
#' @aliases MY-class
#' @exportClass MY
#' @author Joris Meys
setClass("MY",
representation=representation(aslot="numeric",
anotherslot="character"
)