我似乎没有完全理解如何在我正在开发的R包中将方法添加到另一个包中的泛型函数。
我现在正尝试为ID 1 - Home
ID 2 - HardSecure
ID 3 - Services
中定义的autoplot.myobj
通用方法创建方法autoplot
,而不向DEPENDS添加ggplot2
。
对于NAMESPACE中的这一行:ggplot2
,R CMD构建失败并带有
错误:加载命名空间时未找到自动映射
然后,如果我还添加S3method(autoplot,emfrail)
,则R CMD构建有效,但R CMD检查返回
错误:无法找到函数自动映射
所以我理解还必须导出从另一个包导入的泛型。然后,如果我还添加importFrom(ggplot2, autoplot)
,则R CMD构建工作,R CMD检查给出
警告:未记录的代码对象
这意味着我还必须记录export(autoplot)
,尽管已在autoplot
中记录。然后我遵循了建议here,除了之前的所有内容之外,我还有NAMESPACE ggplot2
。
然后我在文档中添加了export(autoplot.emfrail)
roxygen标记。然后R CMD构建和R CMD检查都工作。我看到的缺点是现在使用@rdname autoplot.emfrail
,?autoplot
和我的包中都记录了该函数。
这是从另一个包制作通用的S3方法的最佳方法吗?