2

我正在尝试使用 roxygen2 为参考类对象制作文档,但是当我运行 R CMD 检查时,我不断收到此警告:

  S4 class codoc mismatches from documentation object 'myRefClass-class':
  Slots for class 'myRefClass'
  Code: .xData
  Inherited: .xData
  Docs: field1 field2

这是与上述警告相关的 ref 类和 roxygen2 块:

#' @title myRefClass class
#' @description Description of myRefClass
#' @import methods
#' @exportClass myRefClass
#' @slot field1 A character slot
#' @slot field2 A numeric slot
myRefClass<-setRefClass(Class="myRefClass", 
                        fields=list(field1="character", 
                        field2="numeric"))

这是生成的 R 文档:

myRefClass-class {testPackaging} R 文档 myRefClass 类

描述

myRefClass 的描述

插槽

field1 一个字符槽

field2 一个数字槽

至于我能找到的文档,codoc 正在测试我的代码和文档之间的一致性。据我所知,所有插槽名称都是相同的;也许我错过了一些东西。不确定文档是否应该自动将其标记为参考类,或者我是否应该以某种方式指出这一点?我发现 R 文档表明插槽“.xData,用于启用从异常类型的继承”,但我不确定它为什么适用于我在这里所做的事情,或者我是否应该对它做一些事情。

我已经尝试了许多 roxygen 标签的排列,并保持接近此处找到的结构似乎给了我最好的结果/来自 R CMD 检查的最少警告:Roxygen2 - 如何@export 引用类生成器? 我一直在网上寻找有关如何将 roxygen2 与参考类一起使用的示例;也许我找错地方了——我运气不太好。

我正在使用 roxygen2 v 3.1.0 / RStudio 版本 0.98.501 / R 版本 3.0.3 / OSX 10.9.2 (注意:尝试升级到 roxygen2 v 4.0 并且它完全被引用类阻塞到没有文档的地步完全生成)

如果有人知道使用 roxygen2 和参考类的 CRAN 包,以便我可以看到它是如何正确完成的,或者如果有人知道我做错了什么,我们将不胜感激。我是 R 包构建的新手。

4

1 回答 1

6

在这种情况下,我通常使用@section Fieldsso :

#' @title myRefClass class
#' @description Description of myRefClass
#' @import methods
#' @exportClass myRefClass
#' @section Fields:
#' \describe{
#' \item{\code{field1}:}{Object of class \code{"character"}, field1 description here}
#' \item{\code{field2}:}{Object of class \code{"numeric"}, field2 description here}
#' }

myRefClass<-setRefClass(Class="myRefClass", 
                        fields=list(field1="character", 
                        field2="numeric"))

更新:使用 roxygen2 4.0.1

#' A Reference Class to represent test1.
#' @name test1
#' @import methods
#' @exportClass myRefClass
#' @field field1 A character vector
#' @field field2 A numeric vector

myRefClass<-setRefClass(Class="myRefClass", 
                        fields=list(field1="character", 
                                    field2="numeric"))

生产

A Reference Class to represent test1.
Description

A Reference Class to represent test1.
Fields

field1

    A character vector
field2

    A numeric vector
于 2014-05-17T20:08:39.237 回答