首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我能判断R脚本是否在较少的条件下运行吗?

我能判断R脚本是否在较少的条件下运行吗?
EN

Stack Overflow用户
提问于 2014-10-09 11:46:20
回答 1查看 106关注 0票数 4

Python有这样一个方便的构造:

代码语言:javascript
复制
def do_stuff():
  whatever
if __name__ == "__main__":
  do_stuff(()

因此,如果该文件是从带有python foo.py./foo.py的命令行和适当的shebang行运行的,那么__name__变量将被设置为__main__,并且该文件以脚本的形式运行。但是,您也可以从交互式shell或其他python代码中执行from foo import do_stuff,并在那里运行do_stuff。然后,相同的脚本文件充当模块而不是脚本。

我可以在littler脚本中做类似的事情吗?就像foo.R是:

代码语言:javascript
复制
#!/bin/env r
do_stuff = function(){
  whatever
}
if(?run as r command_line?){
 do_stuff()
}

然后我可以使用source("foo.R"),这将定义do_stuff (在我的默认全局环境中,但我们将稍微忽略这一点)。

一个可能的关键是在运行在_ (设置为脚本名)的环境中存在littler,但是更强大的东西可能更好。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-09 12:25:39

像这样的事情应该有效:

代码语言:javascript
复制
#!/usr/local/bin/r --vanilla

doStuff <- function(print_me) {
  print(print_me)
}

if (!interactive()) {
  if (exists("argv")) {
    if (!is.null(argv) && length(argv)>0) {
      doStuff(argv[1])
    }
  }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26277637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档