在哪里创建包环境变量?
Where to create package environment variables?
我正在进行数据分析并创建了一个包来存储我的插图和数据,如 here 所述。
我想设置一些可用于我的所有包函数的变量。
这些变量定义:数据集的路径、测量特征(例如探头位置)、物理常数等。
我读到过一种推荐的存储此类变量的方法是使用环境。
问题是,创建环境的脚本应该放在哪里?
我想过把它放在 onLoad 方法中,以确保它在加载包时执行。
如果将它放在 .onLoad
函数(而不是方法)中,则必须使用 assign
函数来确保在包命名空间中创建环境。
.onLoad <- function(libname, pkgname)
{
# ...
assign("myPackageEnvironment", new.env(), parent.env())
# ...
}
但你也可以直接把它放在开放代码中:
myPackageEnvironment <- new.env()
通俗地说,您可以将包的 .R 文件视为一个接一个 source
d 到包命名空间的环境中。因此,在开放代码中 运行 的任何语句都将直接在那里创建对象。
我正在进行数据分析并创建了一个包来存储我的插图和数据,如 here 所述。
我想设置一些可用于我的所有包函数的变量。
这些变量定义:数据集的路径、测量特征(例如探头位置)、物理常数等。
我读到过一种推荐的存储此类变量的方法是使用环境。
问题是,创建环境的脚本应该放在哪里?
我想过把它放在 onLoad 方法中,以确保它在加载包时执行。
如果将它放在 .onLoad
函数(而不是方法)中,则必须使用 assign
函数来确保在包命名空间中创建环境。
.onLoad <- function(libname, pkgname)
{
# ...
assign("myPackageEnvironment", new.env(), parent.env())
# ...
}
但你也可以直接把它放在开放代码中:
myPackageEnvironment <- new.env()
通俗地说,您可以将包的 .R 文件视为一个接一个 source
d 到包命名空间的环境中。因此,在开放代码中 运行 的任何语句都将直接在那里创建对象。