目标是有两种简单的方法来源代码,例如func.R,包含一个函数.调用R CMD BATCH func.R初始化函数并评估是.在会话中,发布source("func.R")只是初始化函数.任何的想法?
Har*_*lan 43
我认为这个interactive()功能可能有效.
TRUE当交互式使用R时,此函数返回FALSE.所以只需使用if (interactive())
即相当于
if (!interactive()) {
main()
}
Run Code Online (Sandbox Code Playgroud)
小智 12
另一种选择是:
#!/usr/bin/Rscript
# runs only when script is run by itself
if (sys.nframe() == 0){
# ... do main stuff
}
Run Code Online (Sandbox Code Playgroud)
您可以将参数传递给R,如果存在参数,则运行main().更多关于这里的论点:http://yangfeng.wordpress.com/2009/09/03/including-arguments-in-r-cmd-batch-mode/