我已更新到 roxygen2 v4.0.0,现在正在尝试按照说明将 @S3method 和 @method 命令转换为 @export 命令here https://stackoverflow.com/questions/7198758/roxygen2-how-to-properly-document-s3-methods/22598266#22598266。除了与打印相关的方法之外,这似乎对我的所有方法都很有效。
这是一个说明我的问题的玩具示例(我理解这个示例的愚蠢之处)。这是.R 文件...
#' Test.
#'
#' Test.
#'@aliases zzzTest print.zzzTest summary.zzzTest
#'@param v A numeric vector.
#'@param x A \code{zzzTest} object.
#'@param object A \code{zzzTest} object.
#'@param \dots Additional arguments for the S3 methods.
#'@return A \code{zzzTest} object.
#'@keywords manip
#'@examples
#'z <- zzzTest(runif(10,1,2))
#'print(z)
#'summary(z)
#'@rdname zzzTest
#'@export zzzTest
zzzTest <- function(v) {
tmp <- log(v)
class(tmp) <- "zzzTest"
}
#'@rdname zzzTest
#'@export
print.zzzTest <- function(x,...) { print(x, ...) }
#'@rdname zzzTest
#'@export
summary.zzzTest <- function(object,...) { summary(object) }
这是氧化产生的 .Rd 文件......
% Generated by roxygen2 (4.0.0): do not edit by hand
\name{zzzTest}
\alias{print.zzzTest}
\alias{summary.zzzTest}
\alias{zzzTest}
\title{Test.}
\usage{
zzzTest(v)
print.zzzTest(x, ...)
\method{summary}{zzzTest}(object, ...)
}
\arguments{
\item{v}{A numeric vector.}
\item{x}{A \code{zzzTest} object.}
\item{object}{A \code{zzzTest} object.}
\item{\dots}{Additional arguments for the S3 methods.}
}
\value{
A \code{zzzTest} object.
}
\description{
Test.
}
\examples{
z <- zzzTest(runif(10,1,2))
print(z)
summary(z)
}
\keyword{manip}
我对 @export 的使用似乎适用于摘要方法(注意 \method()),但不适用于打印方法(注意没有 \method() 且仅 print.zzzTest)。我还成功地将 @export 用于其他 .R 文件中的其他几种方法。我的问题似乎只发生在打印方法上。
有人可以指出我哪里出错了吗?预先感谢您对这个问题的任何帮助。
就其价值而言,我使用的是 R 3.1.0、RStudio 0.98.501 和 roxygen2 4.0.0。
更新1:命名空间中有一个导出(print.zzzTemp),但没有 S3method(print,zzzTemp)...即与 ZNK 相同的问题(在注释中)。
更新2:我将确切的 .R 文件复制到另一个包中,对该包进行 roxygenize,并且正确创建了 .Rd 文件(和相应的命名空间)。这意味着我在两个包之间有一些与 roxygen2 相关的不同“开关”,但我似乎无法隔离差异或找到这样的“开关”(我相信我只通过 RStudio 中的项目选项控制了 roxygen )。