什么是与含有S4类的包推荐包构建的工作流程? [重复](What's the recom

2019-08-03 08:44发布

可能重复:
如何使用Roxygen2正确记录S4类插槽

我想建立一个包含包S4 classes ,使用R Studio和roxygen2 。 使用我已经证明我的所有功能roxygen2语法当我介绍了几个S4 classes我的包。

现在我意识到,有外的开箱没有“@slot”功能。 所以,我不知道如何可以保持对其他功能的所有我的文档工作,并记录S4 classes手动喜欢在提出这个主题 ?

或者换句话说,你会推荐哪些工作流程,建立了包含两个老同学的功能和包装S4 classes

编辑:你会建议配置[R Studio构建工具不创建.Rd文件。 roxygenize手动,然后再把添加信息? 不过这将导致覆盖类的手动生成.Rd文件...

Answer 1:

在roxygen和S4类一般信息

roxygen的第一个版本有一个@slot标签,但该版本不保持有利于更多的roxygen2 。 所以建议对使用该旧版本。

至于现在, roxygen2不具有S4类的真正支持。 哈德利正在努力使在发生roxygen3 ( https://github.com/hadley/roxygen3 )。 如果你想给它一个镜头和感觉勇敢的:安装roxygen3从GitHub,并尝试开发版本。 请注意,这个版本最终会被incoorporated到roxygen2 ,所以在时间上的问题会自行解决。

关于你的工作流程:

我个人一直觉得这是一个坏主意,使用roxygen和手动编写.Rd文件结合起来。 但是,如果你一定要,你可以roxygen的输出发送到使用的参数不同的目录roxygen.dir 。 这样,您就可以复制任何你想要回包目录,但不覆盖手写文件。

roxygenise("./mypackage", roxygen.dir="./myroxygendir")

我会做什么,是简单地使用roxygen2为您链接到线程解释写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"
                                       )


文章来源: What's the recommended package build workflow with packages that contain S4 classes? [duplicate]