首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >littler确定是否按部署运行

littler确定是否按部署运行
EN

Stack Overflow用户
提问于 2015-02-18 16:24:08
回答 1查看 60关注 0票数 2

我非常兴奋地发现Jeff和Dirk的应用程序很少从终端运行R函数。-荣誉!

从那时起,我就能够将我的功能传递给我的开发团队,并让它们在其他服务器上运行。

我的问题是它的部署。在传递给其他人之前,我先在我的电脑里试一试,然后用RStudio.(也是荣誉)。

我在想,在脚本中是否有一个命令要运行,以便判断函数是从命令中运行的,还是用R执行的。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-18 17:02:32

我不知道是否有更具体的答案。但是通常情况下,在R中确定代码如何运行是不可能的(或非常困难),这是我在https://github.com/klmr/modules上工作的动机之一。

R只知道代码是否在交互式shell中运行(通过interactive())。

使用模块,您可以测试是否设置了module_name(),类似于Python的__name__

代码语言:javascript
复制
if (is.null(module_name()) && ! interactive()) {
    # Stand-alone, execute main entry point
}

if (! is.null(module_name())) {
    # Code is being loaded as a module.
}

我在此基础上编写了一个小包装,用于编写命令行应用程序。例如,一个非常简单的cat-like应用程序如下所示:

代码语言:javascript
复制
#!/usr/bin/env Rscript

sys = modules::import('sys')

sys$run({
    if (length(sys$args) == 0) {
        message('Usage: ', script_name(), ' filename')
        sys$exit(1)
    }

    input = sys$args[1]
    cat(readLines(input))
})
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28588519

复制
相关文章

相似问题

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