r - 从 R 包构建中排除数据集

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

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

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

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

编辑

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

^data/.+$

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

有什么建议将文件夹也排除在安装/检查过程之外吗?

最佳答案

如果你使用 .Rbuildignore 你应该先构建然后检查你的包(这不是检查忽略)。这里在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,卢卡

https://stackoverflow.com/questions/23382030/

相关文章:

java - 在行中找不到可执行代码

python - 使用 SCons 进行真正的分层构建?

android - 有没有办法让 Android NDK-build 使用更新版本的 gcc?

build - Make有现代替代品吗?

visual-studio-2010 - 极简 Qt 构建的推荐标志

build - 在 Visual Studio Team Services 构建期间以管理员身份运行

c# - Visual Studio clean 解决方案不会删除所有被移动的 dll/项目引用

msbuild - 为什么我的 .wpp.targets 文件没有应用到我的构建服务器上?

javascript - 内联 require.js 文本!使用咕噜声

scala - 如何使 sbt 任务使用特定的配置范围?