R包开发中的代码组织

Sco*_*hie 19 r package

当开发R所有R源文件中的包放在子目录中时R/,所有编译的代码都放在子目录中src/.

我想在这些文件夹中添加一些组织到文件,而不是将所有内容都转储到顶层.例如,假设我假设开发了一个客户端 - 服务器应用程序.从逻辑上讲,我想组织我的所有客户端R源文件R/client/和我的所有服务器R源文件R/server/.

在开发包时是否可以在子文件夹中组织代码,如果是,如何?在写作R附加手册没有提供任何指引,也没有 R CMD build检测到存储在子文件夹下的文件R/.

Dir*_*tel 10

将评论扩大到哈德利的恕我直言,错误答案:

查看Matrix包(由R Core成员编写),下面有五个文件夹src/,其中两个包含其他子文件夹.其他示例是由R Core成员编写和维护的Rsymphony包(co-).

这样做不适合胆小的人.R 强烈地倾向于整个src/Makevars片段src/Makefile,以便能够Makefile为不同的子体系构建自己的版本.但是如果你知道一点点制作并愿意付出努力,这完全是可行的 - 并且已经完成了.

尽管如此,仍然没有建议.

  • 您可以将子文件夹放在“src/”下面,但是可以将它们放在“R/”下面吗?在我看来,这是一个微小但重要的区别...... (3认同)

had*_*ley 6

没有其他设置(如定义自定义makefile),您无法使用子文件夹.你能做的最好是使用前缀:client-a.r,client-b.r,server-a.r,server-b.r,等.

  • @DirkEddelbuettel当然,如果你足够努力,你可以做任何事情.您甚至可以将所有代码存储在数据库中. (4认同)
  • **但当然你可以**.如果你知道自己在做什么,并愿意做正确的`src/Makevars`.主要的例子可能是[Matrix](http://cran.r-project.org/package=Matrix)包,它在`src /`下面有五(5)个子文件夹,其中一些包含其他文件夹.现在,这是推荐的方法吗?不,但它a)可行,b)完成. (2认同)
  • @DirkEddelbuettel你的make文件可以从数据库中提取代码...... (2认同)
  • 能不能请你别傻了。引用“写作R扩展”中的行或段落,其中a)建议使用数据库存储文件,b)禁止使用src /`的子文件夹。 (2认同)
  • @DirkEddelbuettel R-ext并不禁止使用子文件夹,但它表示它们也受到支持.它也不禁止使用数据库,实际上告诉您,您的代码将存储在数据库中.无论如何,我已经调整了我的答案.但我不认为你可以在你的`R /`目录中使用makefile. (2认同)
  • 我明确提到了 Makevars,而不是 Makefile。请不要将错误的言论归咎于我。 (2认同)