R是否具有与python,C中的main函数类似的东西?

时间:2015-08-27 18:15:06

标签: r

我正在寻找一种更好的方法来组织我的R代码。理想情况下,我希望

  • 将所有辅助功能放在脚本的末尾。它将帮助我专注于代码的主要部分,而不会被脚本开头的大量辅助函数分心。
  • 允许每个变量仅存在于特定范围内。例如,如果我不小心为某些变量赋值,我不希望这些变量被后面定义的函数拾取并弄乱。

在Python中,可以通过以下方式轻松实现这两个目标:

def main():
...

def helper_func(x,y):
...

if __name__ == '__main__':
    main()

R有可能吗?如果不可能的话,有什么建议让它与此相似?

1 个答案:

答案 0 :(得分:1)

至于你的两点:

1)由于脚本是以命令行方式从上到下运行的,因此放在脚本底部的任何内容都不可用于在其上运行的行。您可以将辅助功能放在不同的文件中,并将其源于“主”文件的顶部。

2)在一个函数中完成的任何事情都将被遗忘:

> a = 2
> f = function(x) x <- x + 2
> b = f(a)
> b
[1] 4
> a
[1] 2

或者,您可以指定要在任何地方使用的环境:

> CustomEnv = new.env()
> assign("a", 2, envir = CustomEnv)
> a = 3
> a
[1] 3
> get("a", CustomEnv)
[1] 2

有关详细信息,请参阅?environment