从另一个包导入S3泛型

时间:2015-02-18 11:01:37

标签: r

我正在编写一个基于ggplot2包中的autoplot()泛型的包。目前,我有一个名为breg()的函数,它充当类breg的构造函数;可以使用autoplot.breg()绘制其输出。在我的breg()函数中,我的Roxygen命令是这样的:

#' @export breg

然后在autoplot.breg()

#' @import ggplot2
#' @importFrom ggplot2 autoplot
#'
#' @method autoplot breg
#' @export

如果我导入整个@importFrom ggplot2 autoplot,我并不相信我需要ggplot2。但是我在我的NAMESPACE文件中离题了

S3method(autoplot,breg)
export(breg)
import(ggplot2)
importFrom(ggplot2,autoplot)

我的问题是,为什么我仍然会收到以下警告信息:

Warning message:
In setup_ns_exports(pkg, export_all) :
  Objects listed as exports, but not present in namespace: autoplot

1 个答案:

答案 0 :(得分:1)

如果您已经@importFrom package generic,则不需要

@import package声明。

检查@export字段对于避免错误至关重要!

此外,包含点的非常规类名称(例如data.frame)的函数可能需要显式@export generic class声明,因为它的含义不明确:@export breg data.frame或{{1 }}