R包的添加和编辑功能
Adding and Editing Functions of R-package
目标: 我从 CRAN 下载了一个 R 包“ABC”,想实现两件事:
- 编辑该 R 包的现有函数
ex_fct
。
- 向该 R 包添加一个新函数
nw_fct
。
并且这些调整将是永久性的。
情况: 有很好的资源可以解释第一个方面如何 edit/change/overwrite 现有 R 函数-package here,但尝试遵循这种方法似乎无法将 new 功能添加到包中。
问题:因此,我希望将函数nw_fct
添加为该包中的隐藏函数,以便可以通过ABC:::nw_fct
调用它。如何才能做到这一点?有没有办法同时解决这两个方面?
解决方案:以下步骤对我有用(在 Mac 上)同时解决了两个方面:
- 我从 CRAN 存储库(文件:“ABC_1.1-2.tar”)将软件包 ABC 下载为 tar 文件。通过双击解压缩打开文件后,它显示了 alistaire 提供的 link 中描述的包的典型结构(元数据、插图、命名空间等)(参见 here - 非常很有帮助,非常感谢)。
- 所有具有不同算法的相关文件(例如文件“algo-A.R”、“algo-B.R”)都包含在“R”文件夹和文件“ algo-A.R”,我找到了函数
ex_fct
。我在 R-Studio 中打开此文件,根据需要调整 ex_fct
函数,并将 nw_fct
也添加到该文件(因为 ex_fct
和 nw_fct
函数相关)并保存它使用相同的名称,即“algo-A.R”。因此,我现在有一个更新的包文件夹,其中包含我更新版本的“algo-A.R”文件。
- 最后,我使用
devtools
包的 build
函数从这个更新的包文件夹。具体来说,可以简单地使用:build(pkg= "path1/ABC_1.1-2", path= "~path2/ABC_new.tar", manual=F, binary=F)
,其中 path1
导航到更新包文件夹的位置,path2
表示捆绑包的存储位置。 注意:由于我在新机器上执行此操作,因此此步骤不会立即生效,但需要先安装,例如TeXLive, Java 应用程序以及ABC包所需的几个包(只需按照R的错误命令)。
- 最后,我能够(永久地)通过以下方式在 RStudio 中安装更新的包存档文件:
install.packages(“~path2/ABC_new.tar", repos = NULL, type=“source”)
如果您希望撤消这些更改并重新获得原始包,您只需删除该包并从 CRAN 重新安装原始包即可。
目标: 我从 CRAN 下载了一个 R 包“ABC”,想实现两件事:
- 编辑该 R 包的现有函数
ex_fct
。 - 向该 R 包添加一个新函数
nw_fct
。
并且这些调整将是永久性的。
情况: 有很好的资源可以解释第一个方面如何 edit/change/overwrite 现有 R 函数-package here,但尝试遵循这种方法似乎无法将 new 功能添加到包中。
问题:因此,我希望将函数nw_fct
添加为该包中的隐藏函数,以便可以通过ABC:::nw_fct
调用它。如何才能做到这一点?有没有办法同时解决这两个方面?
解决方案:以下步骤对我有用(在 Mac 上)同时解决了两个方面:
- 我从 CRAN 存储库(文件:“ABC_1.1-2.tar”)将软件包 ABC 下载为 tar 文件。通过双击解压缩打开文件后,它显示了 alistaire 提供的 link 中描述的包的典型结构(元数据、插图、命名空间等)(参见 here - 非常很有帮助,非常感谢)。
- 所有具有不同算法的相关文件(例如文件“algo-A.R”、“algo-B.R”)都包含在“R”文件夹和文件“ algo-A.R”,我找到了函数
ex_fct
。我在 R-Studio 中打开此文件,根据需要调整ex_fct
函数,并将nw_fct
也添加到该文件(因为ex_fct
和nw_fct
函数相关)并保存它使用相同的名称,即“algo-A.R”。因此,我现在有一个更新的包文件夹,其中包含我更新版本的“algo-A.R”文件。 - 最后,我使用
devtools
包的build
函数从这个更新的包文件夹。具体来说,可以简单地使用:build(pkg= "path1/ABC_1.1-2", path= "~path2/ABC_new.tar", manual=F, binary=F)
,其中path1
导航到更新包文件夹的位置,path2
表示捆绑包的存储位置。 注意:由于我在新机器上执行此操作,因此此步骤不会立即生效,但需要先安装,例如TeXLive, Java 应用程序以及ABC包所需的几个包(只需按照R的错误命令)。 - 最后,我能够(永久地)通过以下方式在 RStudio 中安装更新的包存档文件:
install.packages(“~path2/ABC_new.tar", repos = NULL, type=“source”)
如果您希望撤消这些更改并重新获得原始包,您只需删除该包并从 CRAN 重新安装原始包即可。