我正在编写一个基于 ggplot2 包中的 autoplot()
泛型的包。目前,我有一个名为 breg()
的函数,它充当类 breg
的构造函数;可以使用 autoplot.breg()
绘制其输出。在我的 breg()
函数中,我的 Roxygen 命令如下:
#' @export breg
然后在 autoplot.breg()
我有
#' @import ggplot2
#' @importFrom ggplot2 autoplot
#'
#' @method autoplot breg
#' @export
如果我要导入整个 ggplot2
,我不相信我需要 @importFrom ggplot2 autoplot
。但是我离题了,在我的 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
最佳答案
@importFrom package generic
如果您已经有 @import package
,则不需要声明。
检查 @export
字段对于避免错误至关重要!
此外,具有非常规类名(例如 data.frame)的函数,其中包含一个点,可能需要显式的 @export generic class
声明,因为它在其他方面是不明确的,你的意思是: @export breg data.frame
或@export breg.data frame
。
关于r - 从另一个包导入 S3 泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28581956/