在努力使用 roxygen2 记录 S4 类之后,我决定退后一步,使用 package.skeleton
、promptClass
和 promptMethod
创建一个最小示例。
我的问题是R CMD check
仍然给出有关"未记录的代码对象"的警告,尽管我认为我已经正确记录了它们。
我现在拥有的文件是:
testClass.R:
setClass("testClass",
slots = c(a = "numeric"),
prototype = prototype( a = 0 ),
validity = function(object) return(TRUE))
setGeneric(name = "testMethod",
def = function(object, ...) standardGeneric("testMethod") )
setMethod(f = "testMethod", signature = "testClass",
definition=function(object, x)
{
cat("testMethod:",x,"n")
invisible(object)
}
)
testClass-class.Rd
name{testClass-class}
Rdversion{1.1}
docType{class}
alias{testClass-class}
%%alias{testMethod,testClass-method}
title{Class code{"testClass"}}
description{bla bla}
section{Objects from the Class}{bla bla}
section{Slots}{describe{item{code{a}:}{Object of class code{"numeric"} ~~ }}}
section{Methods}{describe{item{testMethod}{code{signature(object = "testClass")}: ... }}}
keyword{classes}
和 testMethod.Rd
name{testMethod-methods}
docType{methods}
alias{testMethod-methods}
alias{testMethod,testClass-method}
title{ ~~ Methods for Function code{testMethod} ~~}
description{blabla}
section{Methods}{
describe{item{code{signature(object = "testClass")}}{blabla}}}
keyword{methods}
还有一个包文档文件,但我认为它在这里无关紧要。
R CMD check
给出:
* checking for missing documentation entries ... WARNING
Undocumented code objects:
‘testMethod’
All user-level objects in a package should have documentation entries.
See chapter ‘Writing R documentation files’ in the ‘Writing R
Extensions’ manual.
我已经查阅了这些部分,我从中得到的是我至少需要一个别名来generic,signature-list-method
,在这种情况下,这将是alias{testMethod,testClass-method}
,它是由我对 promtMethod 的调用自动放置在文档文件中的(我已经从类中注释掉了它。rd 文件,因为它在那里重复)。
我需要在 .Rd 文件以摆脱此警告?
与此同时,我想出了问题所在。看来我也需要alias{testMethod}
屁股到.rd 文件。但是,我觉得奇怪的是,promptMethod
生成的文件不包含此别名。