我正在使用devtools
构建一个供内部使用的包。我希望从文件/连接中获取数据包的负载(根据构建的日期包而不同)。数据很大,因此在打包过程中解析和加载数据需要一次性成本。
目前,我在R/
下有一个data.R文件,用于将数据分配给包级变量,这些值是在包安装期间分配的(或者至少是看起来正在发生的情况)。这种不太理想的设置大多有效。为了使包的所有实例具有相同的数据,我必须使用包分发数据文件(目前在构建包之前通过帮助脚本将其复制到inst/
)而不是仅仅拥有它被包装在一起。必须有更好的方法。
如:
data/
中运行R代码
Collate
解决这个问题(我认为),但是我必须维护所有.R
文件的顺序(但是由于增加了复杂性,我可能会使用Makefile?)tl; dr:有哪些方法可以将动态变化数据的快照添加到为部署冻结的R软件包中?
答案 0 :(得分:2)
作为@BenBolker points out in the comments above,将数据集拆分为不同的包在社区中有先例(最值得注意的是核心包datasets
),并且还有其他好处。
功能与数据的分离也使得使用最新功能更容易处理数据的历史版本。
我目前有一个tools-to-munge
包和一个things-to-munge
包。使用帮助程序脚本,我可以构建tools-to-munge
并在两个程序包的Suggests
中设置Depends
(或DESCRIPTION
),以指向适当的程序包递增版本。在构建新的tools-to-munge
包之后,我可以根据需要使用things-to-munge
包中的函数构建tools-to-munge
包。