如何记录R参考类?

时间:2011-07-20 08:27:49

标签: r documentation rd reference-class

如何记录引用类的成员函数的使用?

如果我用Rd块写一个\usage文件,我该如何避免WARNING

Functions/methods with usage in documentation object 'XmlDoc' but not in code:
  $ new

我希望\usage块允许我写下这样的内容:

obj <- ClassName$new(par1, par2, ...)
obj$method1(oth1, ...)

然后我会记录\arguments块中的参数。

如果我这样做,R CMD check会抱怨

Assignments in \usage in documentation object 'ClassName':

并且不会将方法识别为我需要文档的代码对象。

截至目前,我正在编写Rd个文件而没有\usage块,并在\examples块中编写上述代码,但是我没有地方记录参数,这样check实际上很少检查。由于我对此不满意,我现在向社区询问当前的常见做法。

2 个答案:

答案 0 :(得分:5)

我不知道这是不是正确的方法,但我所做的是有一个方法部分,然后将方法文档放在内部 describe

答案 1 :(得分:4)

如果我理解正确,参考类方法 S4方法,因此适用documenting S4 classes and methods

让这个答案更加独立,这就是我在Logger包中的logging.oo类的情况下所做的。

这是我想要记录的代码,有一些遗漏[...]。

Logger <- setRefClass("Logger",
                      fields=list(name = "character"),
                      methods=list(
                        setLevel = function(newLevel) { [...] },
                        getLevel = function() { [...] },
                        addHandler = function(...) { [...] },

这是.Rd文件的相应内容:

\alias{\S4method{new}{Logger}}
\alias{\S4method{setLevel}{Logger}}
\alias{\S4method{getLevel}{Logger}}
\alias{\S4method{addHandler}{Logger}}
[...]
\usage{
\S4method{new}{Logger}(name)
\S4method{setLevel}{Logger}(newLevel)
\S4method{getLevel}{Logger}()
\S4method{addHandler}{Logger}(...)

在NAMESPACE文件中我只是指出我正在导出Logger类,我没有指定它的方法:所有都自动导出。