更改 R 包中的内部数据
Altering internal data in R package
我正在处理一个需要引用外部数据的包(我们称它为 myPackage
),该数据太大而无法合并到包本身(有很多 netCDF 文件)。
因此我有一个内部 PATH
变量(我在 /data-raw/
中启动它,它保存到 sysdata.rda
,并且我关闭了延迟加载)。当要求获取数据时,任何函数都可以使用此 PATH 来查找数据。
我希望用户能够指定他们的路径,所以我写了一个函数:
setpath<-function(path){
myPackage:::PATH = path
}
做setpath("C:/")
是行不通的。我收到错误:setpath("C:/") 错误:找不到对象 'myPackage'。
我还尝试了以下替代功能:
setpath<-function(path){
PATH = path
}
这样,变量 myPackage:::PATH
永远不会改变。
我应该怎么做?内部数据是只读的吗?
您可以使用 options()
。使用
创建一个选项
options(myPackageRepositoryPath = "some/path")
并检索它
path <- getOption(myPackageRepositoryPath)
与设置选项一样,您也可以覆盖选项:
setpath<-function(path){
options(myPackageRepositoryPath = path)
}
我正在处理一个需要引用外部数据的包(我们称它为 myPackage
),该数据太大而无法合并到包本身(有很多 netCDF 文件)。
因此我有一个内部 PATH
变量(我在 /data-raw/
中启动它,它保存到 sysdata.rda
,并且我关闭了延迟加载)。当要求获取数据时,任何函数都可以使用此 PATH 来查找数据。
我希望用户能够指定他们的路径,所以我写了一个函数:
setpath<-function(path){
myPackage:::PATH = path
}
做setpath("C:/")
是行不通的。我收到错误:setpath("C:/") 错误:找不到对象 'myPackage'。
我还尝试了以下替代功能:
setpath<-function(path){
PATH = path
}
这样,变量 myPackage:::PATH
永远不会改变。
我应该怎么做?内部数据是只读的吗?
您可以使用 options()
。使用
options(myPackageRepositoryPath = "some/path")
并检索它
path <- getOption(myPackageRepositoryPath)
与设置选项一样,您也可以覆盖选项:
setpath<-function(path){
options(myPackageRepositoryPath = path)
}