我已经使用R 4个月了,我真的希望有一种方法可以像其他语言一样使用"main"函数:C++,python ......
我想要的主要原因是我在R脚本中使用的所有变量都是全局变量,可能会污染我在同一个脚本中定义的任何函数,如下所示:
f <- function(x) {
x + a
}
a <- 50
f(5)
Run Code Online (Sandbox Code Playgroud)
对我来说,这只是个人偏好.我是一个邋program的程序员,我想防止自己犯下愚蠢的错误.
我当然可以定义main < - function(){},但是有类似的东西
if __name__ == "__main__":
main()
Run Code Online (Sandbox Code Playgroud)
在python?所以我可以轻松运行脚本?(上面的代码表示:在这个脚本中,如果函数名是"main",则运行"main()",即调用main函数)
我希望R脚本具有在交互模式下执行的main()函数.但是在获取文件时不应执行main()函数.
已经有一个关于这个的问题,一个非常好的答案建议使用interactive()函数.然而,这对我不起作用.我没有足够的声誉点来评论或回答这个问题.所以我再次问这个问题.
我写这个 script_1.r
if(interactive()){
your main code here
}
Run Code Online (Sandbox Code Playgroud)
如果我使用knitr来放弃html或pdf文档,那就是获取脚本.此代码if(interactive())不会被执行.这对我有好处,这就是我想要的.
我的问题是,如果我source("script_1.r")从script_2.r交互模式,它仍将运行此if(interactive())部分下的代码.
我正在寻找一种更好的方式来组织我的 R 代码。理想情况下,我希望
在 Python 中,这两个目标可以通过以下方式轻松实现:
def main():
...
def helper_func(x,y):
...
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
在 R 中可能吗?如果不可能的话,有什么建议可以让它与此类似吗?