gpt4 book ai didi

r - 组织 R 源代码

转载 作者:行者123 更新时间:2023-12-03 06:11:08 24 4
gpt4 key购买 nike

全部,

我第一次开始编写面向对象的 R 代码,并预计会有多个具有依赖关系的 R 文件。我是 R 新手,除了单个大型脚本之外还没有编写任何内容来测试想法。是否有在线资源提供有关如何组织代码的提示?由于缺乏有关如何构建软件包的描述,我无法找到此类指导。此时,我只想以一种使例程集合的加载和交互尽可能简单的方式组织代码。

感谢您提供的任何指导。

克里斯

最佳答案

这个问题与:"How to organize large R programs?"密切相关。

您应该考虑创建一个 R 包。您可以使用 package.sculpture 函数从给定的一组 R 文件开始。我还强烈建议在开始时使用 roxygen 来记录包,因为事后要做起来要困难得多。

阅读"Writing R Extensions" 。在线书籍“Statistics with R”有a section on this subject 。另请查看 Creating R Packages: A Tutorial作者:弗里德里希·莱施。最后,如果您在纽约,请参加即将举行的纽约 use-R 小组 session "Authoring R Packages: a gentle introduction with examples" .

只是重申一些有关良好实践的建议:

  • 软件包允许您使用R CMD 检查,这对于捕获错误非常有帮助;您可以单独查看如何使用 codetools 包。
  • 软件包还迫使您编写最少量的文档,从长远来看,这会带来更好的实践。
  • 如果您希望代码健壮/可维护,您还应该考虑进行单元测试(例如使用 RUnit )。
  • 您应该考虑使用风格指南(例如 Google Style Guide )。
  • 从一开始就使用版本控制系统,如果您打算将代码开源,请考虑使用 github 或 r-forge。

编辑:

关于如何在不重建和安装完整包的情况下进行增量更改:我发现最简单的方法是在相关的 R 文件中进行更改,然后使用 source 命令加载这些更改。将库加载到 R session 中后,它在环境中的位置始终低于 .GlobalEnv(并且优先级也较低),因此您直接获取或加载的任何更改都将首先使用(使用 search 命令可以看到这一点)。这样,您就可以将您的包置于底层,并在环境中测试它们时覆盖更改。

或者,您可以使用 StatET 或 ESS 等 IDE。它们使得从 R 包中加载单独的行或函数变得非常容易。 StatET 经过精心设计,可以处理类似目录结构中的包管理。

关于r - 组织 R 源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2284446/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com