gpt4 book ai didi

r - 如何使用 roxygen2 将 S3method 导出为方法和正常函数

转载 作者:行者123 更新时间:2023-12-05 06:29:20 33 4
gpt4 key购买 nike

那里有类似的、较旧的问题,但自从 roxygen2 3.0.0 版以来,情况发生了一些变化(正如我从其他问答中了解到的那样)。

我已经编写了一个替代函数 format.Date,我想将其作为方法和函数导出。
使用 @export 标签意味着 roxygen2 将其识别为打印的 S3 方法,并相应地注册它。当我加载我的包并打印一个日期对象时,我的方法被调用。到目前为止,还不错。

但是,当我随后调用 format.Date 时,我仍然得到正常的基本方法。当我使用 debugonce(format.Date) 时也会发生这种情况,“调试标记”设置在 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 下运行

最佳答案

我找到的方法是

  1. @exportS3Method 和显式 @export 行。由于 roxygen2 经常变化,这可能会在未来发生变化:

    #' @exportS3Method fortify
    #' @export fortify.Date
  2. 手动拼出 NAMESPACE 内容(不添加其他 @export@method 指令)

    #' @rawNamespace S3method(fortify,Date)
    #' export(fortify.Date)

两者都会生成包含以下行的 NAMESPACE 文件,第一行会导致 roxygen2 为您订购东西。

S3method(fortify,Date)
export(fortify.Date)

关于r - 如何使用 roxygen2 将 S3method 导出为方法和正常函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53593674/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com