我正在编写一个基于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
答案 0 :(得分:1)
@importFrom package generic
,则不需要 @import package
声明。
检查@export
字段对于避免错误至关重要!
此外,包含点的非常规类名称(例如data.frame)的函数可能需要显式@export generic class
声明,因为它的含义不明确:@export breg data.frame
或{{1 }}