【问题标题】:Modular Programming in RR中的模块化编程
【发布时间】:2021-03-04 00:44:53
【问题描述】:

对 R 来说非常陌生,我想知道是否可以通过将部分打包成子脚本(如模块或全局自己的函数)来缩小自己的炸毁 R 脚本。这在其他解释器语言中有些常见。

在不同的 R 模块中拆分数据读取、绘图、设计、导出等的最佳方法是什么?

【问题讨论】:

  • R 有它的包系统用于这个目的。

标签: r function module package


【解决方案1】:

有一个专门用于此目的的包,名为“box”。

该包提供了一个函数box::use(),它以智能的方式替换了sourcelibrary

source('x.r')

可以简单地替换为

box::use(./x)
# or:
box::use(./x[...]) # to attach all names

但是,box::use()source 做得更好——例如,您可以在项目中分层组织模块,可以统一处理包和模块代码,可以记录模块代码等等。

See the vignette for details.

“box”包的创建正是因为我对 R 对模块化的支持不满意。

【讨论】:

  • importCheckInstall(pkg) 中出现错误:'package:x.R' 未安装!即使 source("x.R") 有效。我也尝试了 modules::use("x.R"),它确实加载了,但是在实际调用 x.R. 时它无法识别 tidyverse %>%
  • @yakzo 我意识到您的评论现在已经很老了,并且在 1.0 版发布时已经过时,但这个问题现在已经解决了 in the FAQ
【解决方案2】:

是的,您可以制作包含函数的下标,并使用source 获取它们。

我认为最好的方法取决于具体情况,但只需编写你的函数,将它们保存为 .R 文件并在你的脚本中source它们

【讨论】:

    猜你喜欢
    • 2011-07-23
    • 2012-07-29
    • 2016-06-23
    • 2015-11-02
    • 2015-10-03
    • 1970-01-01
    • 2010-10-26
    • 1970-01-01
    • 2014-12-01
    相关资源
    最近更新 更多