在哪里创建包环境变量?

Where to create package environment variables?

我正在进行数据分析并创建了一个包来存储我的插图和数据,如 here 所述。

我想设置一些可用于我的所有包函数的变量。

这些变量定义:数据集的路径、测量特征(例如探头位置)、物理常数等。

我读到过一种推荐的存储此类变量的方法是使用环境。

问题是,创建环境的脚本应该放在哪里?

我想过把它放在 onLoad 方法中,以确保它在加载包时执行。

如果将它放在 .onLoad 函数(而不是方法)中,则必须使用 assign 函数来确保在包命名空间中创建环境。

.onLoad <- function(libname, pkgname)
{
    # ...
    assign("myPackageEnvironment", new.env(), parent.env())
    # ...
}

但你也可以直接把它放在开放代码中:

myPackageEnvironment <- new.env()

通俗地说,您可以将包的 .R 文件视为一个接一个 sourced 到包命名空间的环境中。因此,在开放代码中 运行 的任何语句都将直接在那里创建对象。