:首次安装或使用包时运行代码

Jor*_*eys 7 install r package

我正忙着为一个对R知之甚少的客户编写软件包.鉴于其复杂的数据结构,我需要在R中建立一个"数据库",其中包含从他们从另一家公司获得的一组电子表格中获得的大量信息.由于他们不能在他们的计算机上安装SQL等(ICT有一些功率控制问题......),我已经在R中根据特定的目录结构编写了一个仿真.现在我想自动运行它,但只是第一次加载包.有点像.First.lib,但是.VeryFirst.

关于如何在第一次加载包时加载一段代码的任何想法?我无法在手册中的任何地方找到它,所以欢迎所有指针.

Dir*_*tel 4

它在手册中。

基本上你有两个代码路径:

  1. 没有 NAMESPACE 的包可以使用函数.First.lib(),通常来自R/zzz.R

  2. 具有 NAMESPACE 的包可以使用函数.onLoad(),通常也来自R/zzz.R.

我已将其用于一些技巧,例如在加载时让包自行更新(!!)。这要求不使用命名空间并utils::update.packages()在实际加载二进制代码之前运行。