2014-04-30 49 views
5

我正在实现一个R包,其中我在'data'文件夹中有几个大的.rda数据文件。从R包构建排除数据集

当我构建包(使用R CMD构建以创建.tar.gz压缩文件)时,数据文件也包含在包中,并且由于它们非常大,因此使构建(以及检查)过程非常缓慢,而最终的封装尺寸无用地大。

这些数据是通过包的函数从某个数据库下载的,因此其目的不是将数据包括在包中,而是让用户从其自己的数据库中填充数据文件夹。我使用的数据是用于测试的,将它们包含到包中是没有意义的。

总结我的问题是:是否可以将数据保存在'data'文件夹中,但是将它们从构建的包中排除?

编辑

好吧,我找到了第一个解决方案通过创建一个名为.Rbuildignore文件,其中包含一个行:

^data/.+$ 

反正问题仍然存在对R CMD安装和R CMD检查过程中,没有考虑到.Rbuildignore文件。

任何建议也从安装/检查进程中排除文件夹?

回答

4

如果你使用.Rbuildignore你应该先建立然后检查你的包(这不是检查忽略)。在这里,在一个Debian环境中的一些测试和随机包装:

[email protected]:~/src/yapomif/pkg$ ls 
data DESCRIPTION man NAMESPACE R 

[email protected]:~/src/yapomif/pkg$ R 
> save(Formaldehyde, file = "data/formal.rda") 

[email protected]:~/src/yapomif/pkg$ ls -l 
totale 20 
drwxr-xr-x 2 l l 4096 mag 1 01:31 data 
-rw-r--r-- 1 l l 349 apr 25 00:35 DESCRIPTION 
drwxr-xr-x 2 l l 4096 apr 25 01:10 man 
-rw-r--r-- 1 l l 1189 apr 25 00:33 NAMESPACE 
drwxr-xr-x 2 l l 4096 apr 25 01:02 R 

[email protected]:~/src/yapomif/pkg$ ls -l data/ 
totale 4 
-rw-r--r-- 1 l l 229 mag 1 01:31 formal.rda 

现在我创建正是您.Rbuildignore

[email protected]:~/src/yapomif/pkg$ em .Rbuildignore 
[email protected]:~/src/yapomif/pkg$ cat .Rbuildignore 
^data/.+$ 

好吧,让我们构建

[email protected]:~/src/yapomif/pkg$ cd .. 
[email protected]:~/src/yapomif$ R CMD build pkg 
> tools:::.build_packages() 
* checking for file ‘pkg/DESCRIPTION’ ... OK 
* preparing ‘yapomif’: 
* checking DESCRIPTION meta-information ... OK 
* checking for LF line-endings in source and make files 
* checking for empty or unneeded directories 
Removed empty directory ‘yapomif/data’ 
* building ‘yapomif_0.8.tar.gz’ 

精细(你看到有关消息yapomif /数据)。现在,检查包

[email protected]:~/src/yapomif$ R CMD check yapomif_0.8.tar.gz 
> tools:::.check_packages() 
* using log directory ‘/home/l/.src/yapomif/yapomif.Rcheck’ 
* using R version 3.1.0 (2014-04-10) 
* using platform: x86_64-pc-linux-gnu (64-bit) 
... 

...一切如常

现在让我们来检查文件(移动到主目录,以保持我的 发展DIR干净)

[email protected]:~/src/yapomif$ mv yapomif_0.8.tar.gz ~ 
[email protected]:~/src/yapomif$ cd 
[email protected]:~$ tar xvzf yapomif_0.8.tar.gz 
[email protected]:~$ ls yapomif 
DESCRIPTION man NAMESPACE R 

所以没有数据目录

但是如果

[email protected]:~/src/yapomif$ R CMD check pkg 

... 

Undocumented data sets: 
    ‘Formaldehyde’ 

所以,如上所述,先建立,然后检查。

HTH,卢卡

+1

@Nicola我希望我的测试是有用的,因为现在它的下一个阶段......但你不能使用该功能在网络上的某个地方检索较小的数据集,以使小插曲完全可重现? –