我正在编写一个基于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
NAMESPACE
文件,对吗? - Konrad Rudolph@importFrom ggplot2 autoplot
,似乎问题已经解决了。 - nathaneastwood@method generic class
标签。从 3.0.0 版本开始,这不再需要,因为 roxygen2 将自动解决它。” 据我所知,使用@importFrom
已完全被弃用。 - Konrad Rudolph@export autoplot
,这让我认为我看到的错误意味着我需要@importFrom ggplot2 autoplot
函数。关于@method generic class
,我只是因为Roxygen无法识别我的一些方法,例如breg.data.frame()
是一个导出的函数,但不是S3method。我目前安装的是v4.1.0版本。 - nathaneastwooddata.frame
,其中包含一个点)可能需要显式的@export generic class
声明,因为否则不清楚你指的是哪个:@export breg data.frame
还是@export breg.data frame
。很糟糕。 - Konrad Rudolph