print.surveyor
的包。我的代码可以正常工作,并且我使用Roxygen进行内联文档记录。但是,命令R CMD check
会发出警告:
在文档对象'print.surveyor'中具有用法但未在代码中出现的函数/方法:print
以下两个页面均由Hadley编写,对我有所启发:Namespaces和Documenting functions,两者都指出正确的语法是@method function-name class
因此,我的问题是:如何使用Roxygen正确记录我的新类的print
方法?更具体地说,如何消除警告?
这是我的代码:(注释的文档记录指出了尝试修复此问题的方法,但没有起作用。)
#' Prints surveyor object.
#'
#' Prints surveyor object
#'
## #' @usage print(x, ...)
## #' @aliases print print.surveyor
#' @param x surveyor object
#' @param ... ignored
#' @S3method print surveyor
print.surveyor <- function(x, ...){
cat("Surveyor\n\n")
print.listof(x)
}
以下是经过Roxygen处理后的输出结果,即print.surveyor.Rd
:
\name{print.surveyor}
\title{Prints surveyor object.}
\usage{print(x, ...)
#'}
\description{Prints surveyor object.}
\details{Prints surveyor object
#'}
\alias{print}
\alias{print.surveyor}
\arguments{\item{x}{surveyor object}
\item{...}{ignored}}
## S3 method blah blah
。 - Gavin Simpson@S3method
是怎么回事呢?我应该同时使用它们吗?对于S3方法,@S3method
是否与@export
相同? - cboettig@S3method
注册方法但不导出它,因此可以从foo()
调用它,但不能通过foo.bar()
显式调用它。如果您还要@export
该方法,则可以直接调用它。通常情况下,您不希望导出方法,只需注册它们,但在某些情况下,您可能需要导出方法,在这些情况下,您需要同时使用@S3method
和@export
。 - Gavin Simpson@method
和@S3method
,但不需要@export
吗? - cboettig@method
是文档(.Rd
文件)的标签,而@S3method
是命名空间机制的标签。如果你有自己的NAMESPACE
文件,现在这两个都需要。只有当你真的想要使方法在包的命名空间之外可见时,才需要使用@export
标签。 - Gavin Simpson