5

我的 inst/extdata 中有一个文件 helper.RData 文件,其中包含要由我的包中的函数使用的变量和数据集,但不意味着用户可以访问。

我使用以下方法在包的开头加载它:

load(system.file("extdata","helper.RData", package = "mypackage"))

由于文件很大,这需要相当多的时间,而且在开发过程中尤其烦人(我使用了相当多的 loot 包中的函数load_all()devtools

我宁愿让它延迟加载,以便仅在实际需要时加载文件。

我怎样才能做到这一点?

4

1 回答 1

5

在能够延迟加载数据之前,您必须将变量保存在支持延迟加载的数据库中。

您可以使用 functiontools:::makeLazyLoadDB 和稍后的 function来执行此操作lazyLoad

创建延迟加载数据库。假设您有变量 X 和 Y,您必须创建一个包含它们的环境:

e=new.env(parent=emptyenv())
e$X = X
e$Y = Y

接下来创建数据库:

tools:::makeLazyLoadDB(e,"DBNAME")

当然你可以改变DBNAME

您可以在 R 中使用lazyLoad("DBNAME").

于 2014-02-06T09:26:46.867 回答