更改R包中的内部数据

更改R包中的内部数据,r,r-package,R,R Package,我正在开发一个需要引用外部数据的包(我们称之为myPackage),它太大了,无法集成到包本身中(有很多netCDF文件) 因此,我有一个内部路径变量(我在/data raw/中启动该变量,将其保存到sysdata.rda,并关闭了延迟加载)。当要求获取数据时,任何函数都可以使用此路径查找数据 我希望用户能够指定其路径,因此我编写了一个函数: setpath<-function(path){ myPackage:::PATH = path } setpath<-function

我正在开发一个需要引用外部数据的包(我们称之为
myPackage
),它太大了,无法集成到包本身中(有很多netCDF文件)

因此,我有一个内部
路径
变量(我在
/data raw/
中启动该变量,将其保存到
sysdata.rda
,并关闭了延迟加载)。当要求获取数据时,任何函数都可以使用此路径查找数据

我希望用户能够指定其路径,因此我编写了一个函数:

setpath<-function(path){
  myPackage:::PATH = path
}
setpath<-function(path){
  PATH = path
}
这样,变量
myPackage:::PATH
永远不会更改

我应该怎么做?内部数据是只读的吗?

您可以使用
选项()。使用创建一个选项

选项(myPackageRepositoryPath=“some/path”)

然后取回它


path非常感谢。这很好。您知道内部数据是否是只读的吗?可以使用
utils::assignInNamespace()
修改另一个命名空间中的对象(在本例中为
myPackage
),但文档强烈反对在生产代码中使用它。您要问的是如何设置全局变量,答案在和中。但简单的回答是,这是一个问题。相反,为所有需要这些文件的函数添加一个
path
参数,使其保持自包含状态。
setpath<-function(path){
  options(myPackageRepositoryPath = path)
}