从R包构建中排除数据集

时间:2014-04-30 07:22:42

标签: r build dataset package rstudio

我正在实现一个R包,我在'data'文件夹中有几个大的.rda数据文件。

当我构建软件包(使用R CMD构建来创建.tar.gz打包文件)时,数据文件也包含在软件包中,并且由于它们非常大,这使得构建(以及检查) )过程非常慢,最终的包装尺寸无用大。

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

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

修改

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

^data/.+$

无论如何,R CMD安装和R CMD检查过程仍存在问题,但没有考虑.Rbuildignore文件。

是否有建议从安装/检查流程中排除文件夹?

1 个答案:

答案 0 :(得分:7)

如果你使用.Rbuildignore,你应该首先构建然后检查你的包(它不是一个check-ignore)。这里是Debian环境中的一些测试和随机包:

l@np350v5c:~/src/yapomif/pkg$ ls
data  DESCRIPTION  man  NAMESPACE  R

l@np350v5c:~/src/yapomif/pkg$ R
> save(Formaldehyde, file = "data/formal.rda")

l@np350v5c:~/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

l@np350v5c:~/src/yapomif/pkg$ ls -l data/
totale 4
-rw-r--r-- 1 l l 229 mag  1 01:31 formal.rda

现在我准确创建了您的.Rbuildignore

l@np350v5c:~/src/yapomif/pkg$ em .Rbuildignore
l@np350v5c:~/src/yapomif/pkg$ cat .Rbuildignore
^data/.+$

好的,让我们建立

l@np350v5c:~/src/yapomif/pkg$ cd ..
l@np350v5c:~/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 / data的消息)。现在检查包

l@np350v5c:~/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)
...

......一切正常

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

l@np350v5c:~/src/yapomif$ mv yapomif_0.8.tar.gz ~
l@np350v5c:~/src/yapomif$ cd
l@np350v5c:~$ tar xvzf yapomif_0.8.tar.gz
l@np350v5c:~$ ls yapomif
DESCRIPTION  man  NAMESPACE  R

所以没有数据目录

但如果

l@np350v5c:~/src/yapomif$ R CMD check pkg

...

Undocumented data sets:
  ‘Formaldehyde’

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

HTH,Luca