有类似的旧问题,但自从roxygen2版本3.0.0以来,一些事情已经改变了(根据我在SO上其他问答的理解)。
我编写了一个替代函数format.Date
,我想将其作为方法和函数导出。
使用@export标签意味着roxygen2将其识别为print的S3方法,并相应地注册它。当我加载我的包并打印日期对象时,我的方法就会被调用。到目前为止,一切都很好。
但是,当我调用format.Date时,我仍然得到正常的基本方法。即使我使用debugonce(format.Date)
,'debug-mark'也会设置在base :: format.Date上,因此如果我的方法被调用,则不会发生任何事情。或者如果我想检查源代码:对于用户来说很难理解他所看到的View(format.Date)不是执行的内容。
如果用户查看我的软件包提供了哪些功能,format.Date不在其中。
因此,我希望将format.Date导出为同时是S3方法和名为format.Date的普通函数。为此,我希望我的NAMESPACE文件包含以下两行:
S3method(format,Date)
export(format.Date)
这在roxygen2中是否可行?我有点印象早期版本可以这样做(可以同时提供@S3method / @method和@export),但现在我无法使其工作。背景信息:使用roxygen2版本6.1.1和R 3.5.1,在Rstudio 1.1.453 / MacOS 10.13.6下运行。