R包的添加和编辑功能

Adding and Editing Functions of R-package

目标: 我从 CRAN 下载了一个 R 包“ABC”,想实现两件事:

  1. 编辑该 R 包的现有函数 ex_fct
  2. 向该 R 包添加一个新函数 nw_fct

并且这些调整将是永久性的。

情况: 有很好的资源可以解释第一个方面如何 edit/change/overwrite 现有 R 函数-package here,但尝试遵循这种方法似乎无法将 new 功能添加到包中。

问题:因此,我希望将函数nw_fct添加为该包中的隐藏函数,以便可以通过ABC:::nw_fct调用它。如何才能做到这一点?有没有办法同时解决这两个方面?

解决方案:以下步骤对我有用(在 Mac 上)同时解决了两个方面:

  1. 我从 CRAN 存储库(文件:“ABC_1.1-2.tar”)将软件包 ABC 下载为 tar 文件。通过双击解压缩打开文件后,它显示了 alistaire 提供的 link 中描述的包的典型结构(元数据、插图、命名空间等)(参见 here - 非常很有帮助,非常感谢)。
  2. 所有具有不同算法的相关文件(例如文件“algo-A.R”、“algo-B.R”)都包含在“R”文件夹和文件“ algo-A.R”,我找到了函数 ex_fct。我在 R-Studio 中打开此文件,根据需要调整 ex_fct 函数,并将 nw_fct 也添加到该文件(因为 ex_fctnw_fct 函数相关)并保存它使用相同的名称,即“algo-A.R”。因此,我现在有一个更新的包文件夹,其中包含我更新版本的“algo-A.R”文件。
  3. 最后,我使用 devtools 包的 build 函数从这个更新的包文件夹。具体来说,可以简单地使用:build(pkg= "path1/ABC_1.1-2", path= "~path2/ABC_new.tar", manual=F, binary=F),其中 path1 导航到更新包文件夹的位置,path2 表示捆绑包的存储位置。 注意:由于我在新机器上执行此操作,因此此步骤不会立即生效,但需要先安装,例如TeXLive, Java 应用程序以及ABC包所需的几个包(只需按照R的错误命令)。
  4. 最后,我能够(永久地)通过以下方式在 RStudio 中安装更新的包存档文件:install.packages(“~path2/ABC_new.tar", repos = NULL, type=“source”)

如果您希望撤消这些更改并重新获得原始包,您只需删除该包并从 CRAN 重新安装原始包即可。