这个问题与Exporting non-S3-methods with dots using roxygen2 v4相关但不同。从那篇文章中,我了解到需要使用@export function.name
NAMESPACE 才能由 roxygen 正确写入。我已经这样做了,并且正确编写了 NAMESPACE。
当我执行 R CMD Check 时,我的问题就来了。我有具有功能的遗留代码tail.g()
。R CMD Check 抛出一个注释,指出一个明显的 S3 方法已被导出但未注册。
下面是一个可重现的示例。观察它xxxx.g
没有注释,这让我相信,因为tail
它是 utils 包中的泛型,所以我需要一些特殊的解决方法。我不希望将 tail.g 重命名为 tail_g,因为这是遗留代码。我希望消除成功提交 CRAN 的所有注释。
library(roxygen2)
package.skeleton("test")
writeLines(
"#' Check an argument
#'
#' Checks an argument.
#' @param ... Some arguments.
#' @return A value.
#' @export tail.g
tail.g <- function(...) 0",
"test/R/tail.g.R"
)
writeLines(
"#' Check an argument
#'
#' Checks an argument.
#' @param ... Some arguments.
#' @return A value.
#' @export xxxx.g
xxxx.g <- function(...) 0",
"test/R/xxxx.g.R"
)
roxygenise("test")
setwd("./test")
devtools::check(document=FALSE)
给出注释:
checking S3 generic/method consistency ... NOTE
Found the following apparent S3 methods exported but not registered:
tail.g
如何在不重命名的情况下消除 tail.g() 的注释?