【问题标题】:Exclude data sets from R package build从 R 包构建中排除数据集
【发布时间】:2014-06-16 09:59:21
【问题描述】:

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

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

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

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

编辑

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

^data/.+$

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

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

【问题讨论】:

    标签: r build dataset package rstudio


    【解决方案1】:

    如果您使用.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,卢卡

    【讨论】:

    • @Nicola 我希望我的测试有用,因为现在是下一个阶段......但是你不能使用该功能在网络上的某个地方检索较小的数据集以使小插图完全可重现?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多