我正在写一个R包,它开始变得越来越大,因此,非常感谢在文件夹pkg/R/和(特别是)pkg/src/中使用自定义结构。

例如,假设我有两种类型为A的算法,一些类型为B的函数,以及一个主入口点。理想情况下,R/或src/文件夹的组织方式如下:

  • typeA/
  • 算法1/
  • algo11.ext
  • ...
  • 算法2/
  • algo21.ext
  • ...
  • typeB/
  • function1.ext
  • ...
  • main.ext

  • 在{R,cpp,c,f,...}中带有“ext”,并且可能两个文件具有相同的名称。

    是否可以 ?如果是,我该怎么做?

    提前致谢 !

    [2012-12-31]编辑:一个想法是写一些脚本-也许在另一个R包内-来(解压缩)结构化的包以进行测试或分发。但是可能有更好的解决方案,所以我会稍等。

    最佳答案

    作为“编写R扩展”手册indicates here的一部分,pkg/src下的Makevars文件允许包含C/C++/Fortran代码的嵌套子文件夹。 (例如参见RSiena软件包)。

    但是,我在pkg/R中没有发现任何与自定义结构有关的内容。因此,我编写了一个小程序包(可用,尽管需要改进),它可以完成以下任务:

  • 加载/卸载在pkg/R之下具有(可能)嵌套文件夹的软件包
  • 在其上启动R和/或C单元测试[要替换的基本框架(例如,RUnit和检查)]
  • 将软件包导出为与CRAN兼容(展平R代码,生成Makevars文件)

  • 如果达到可发布状态,我将在这里链接。 (目前我可以通过电子邮件发送)。

    关于R包: use a custom file/directories structure in pkg/R and pkg/src folders,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13979405/

    10-12 22:31