我已经阅读了以下两个讨论:
Roxygen2 - 如何在
使用 Roxygen 构建 R 包时正确记录 S3 方法 S3 方法一致性警告
以及以下两个教程:
http ://cran.r-project.org/doc/manuals/R-exts .html#Generic-functions-and-methods
http://adv-r.had.co.nz/S3.html,
但我的问题仍然没有解决。以下是详细信息:
我想在一个包中定义一个 plot() 泛型的 S3 方法,我的代码是:
#' description
#'
#' more details
#'
#' @param x "test" object
#' @param label parameter one
#' @param log parameter two
#' @param ... graphical parameters to plot
#'
#' @examples
#' plot(a)
#'
#' @export
plot <- function(x, label=TRUE, log=TRUE, ...){
UseMethod("plot")
}
#' @export
plot.test <- function(x, label=TRUE, log=TRUE, ...){
# some code
}
运行后devtools::check()
,我会收到以下警告:
checking S3 generic/method consistency ... WARNING
plot:
function(x, log, ...)
plot.test:
function(x, label, log, ...)
See section ‘Generic functions and methods’ in the ‘Writing R
Extensions’ manual.
好像参数label
消失了,我尝试交换参数log
和的位置,label
后面的任何参数x
都会消失function(x, log, ...)
,那么如何解决这个问题?