r语言 - 对于包含 S4 类的包,建议的包构建工作流程是什么?



可能的重复:
如何使用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"
)

相关内容

  • 没有找到相关文章

最新更新