【问题标题】:How to save a VERY LARGE .rda file in R package如何在 R 包中保存一个非常大的 .rda 文件
【发布时间】:2014-06-06 10:58:19
【问题描述】:

我渴望将两个 460 x 5000 数字矩阵保存到我的 R 包中。 按照以下说明进行操作: How to effectively deal with uncompressed saves during package check? 我将对象保存为:

save(mat1,file="mat1.rda",compress="xz")
save(mat2,file="mat2.rda",compress="xz")

但是,生成的 R 对象非常大(8.7MB 和 8.9MB),并且 R CMD CHECK --as-cran 给了我注释:

 * checking installed package size ... NOTE
   installed size is 20.1Mb
   sub-directories of 1Mb or more:
   data  20.0Mb

据我了解,不能将 R 包提交给没有“通过”(即没有注释或警告)的 CRAN 的 R CMD CHECL --as-cran。有没有办法将数据集压缩得更小?

【问题讨论】:

  • 除了 Paul 的 cmets,你还可以试试 GitHub。
  • 您可以向 CRAN 提交大包,但您需要向 CRAN 维护者证明其合理性。如果您要分发重要数据,这通常没问题。

标签: r package-development


【解决方案1】:

真的有必要包含这些文件吗?我看到了几个选项:

  • 包括您在示例中使用的矩阵的较小子集。
  • 即时生成矩阵,例如用随机数。
  • 将文件放在某处以供下载,并确保示例不执行。

【讨论】:

  • 我在分析中使用了整个数据集,并且该数据集是一个真实的数据集,所以前两个选项不适合我。如果我的手稿中使用的所有内容(代码和数据)都在一个地方,那就太好了。但是,我知道这要求太多,将数据集放在其他地方是公开我的数据集的另一种方法。谢谢。
  • 我将包含一个数据子集,只是为了展示代码的工作原理,并运行一些测试。此外,为了重现性,我会发布整个数据集。
【解决方案2】:

考虑将数据分发到单独的数据包中,该数据包将只构建、上传和安装一次(希望如此)。将此与更新软件包时一遍又一遍地重新传输相同数据所需的工作进行比较。

(当然,这只适用于您打算为您的包提供更新的情况。如果您的代码从一开始就完美无缺 ;-))

【讨论】:

  • 我明白了。在没有变化的情况下一遍又一遍地将大数据传输到 CRAN 是没有意义和痛苦的。
猜你喜欢
  • 2023-03-31
  • 1970-01-01
  • 2016-03-11
  • 2021-02-11
  • 2019-11-20
  • 1970-01-01
  • 2022-08-15
  • 2017-04-08
  • 1970-01-01
相关资源
最近更新 更多