R中的模块化编程

Mar*_*tin 8 module r function package

作为R的新手,我想知道是否可以通过将部件打包成子脚本(如模块或全局自身功能)来缩小自己的R脚本.这在其他翻译语言中有些常见.

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

Kon*_*lph 6

有一个用于此目的的包,称为"模块".

该软件包提供了一种以智能方式import替换的功能source.在大多数情况下,

source('x.r')
Run Code Online (Sandbox Code Playgroud)

可以简单地替换为

x = import('x')
# or:
import('x', attach = TRUE)
Run Code Online (Sandbox Code Playgroud)

但是,import做很多事情比source- 例如,您可以在项目中分层次地组织模块:

cmdline = import('sys/cmdline')
args = cmdline$parse()

# or:
sys = import('sys')
args = sys$cmdline$parse()
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅插图.

"模块"包的创建恰恰是因为我对R对模块化的支持不满意.


Meh*_*len 3

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

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