我正在寻找一种更好的方式来组织我的 R 代码。理想情况下,我希望
在 Python 中,这两个目标可以通过以下方式轻松实现:
def main():
...
def helper_func(x,y):
...
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
在 R 中可能吗?如果不可能的话,有什么建议可以让它与此类似吗?
对于你的两点:
1) 由于脚本以命令行方式从上到下运行,因此您放置在脚本底部的任何内容对于在其上方运行的行将不可用。您可以将辅助函数放在不同的文件中,并将其放在“主”文件的顶部。
2)函数中所做的任何事情最终都会被忘记:
> a = 2
> f = function(x) x <- x + 2
> b = f(a)
> b
[1] 4
> a
[1] 2
Run Code Online (Sandbox Code Playgroud)
或者,您可以在任何地方指定要使用的环境:
> CustomEnv = new.env()
> assign("a", 2, envir = CustomEnv)
> a = 3
> a
[1] 3
> get("a", CustomEnv)
[1] 2
Run Code Online (Sandbox Code Playgroud)
查看?environment更多详情