gpt4 book ai didi

r - 我可以判断 R 脚本是否在 littler 下运行?

转载 作者:行者123 更新时间:2023-12-01 02:14:20 27 4
gpt4 key购买 nike

Python 有这个方便的结构:

def do_stuff():
whatever
if __name__ == "__main__":
do_stuff(()

这样如果文件从命令行运行 python foo.py./foo.py和适当的 shebang 行,然后是 __name__变量设置为 __main__并且文件作为脚本运行。但是你也可以做 from foo import do_stuff从交互式 shell 或其他 python 代码运行 do_stuff从那里。然后,相同的脚本文件充当模块而不是脚本。

我可以在 littler 中做类似的事情吗?脚本?像 foo.R存在:
#!/bin/env r
do_stuff = function(){
whatever
}
if(?run as r command_line?){
do_stuff()
}

那我可以 source("foo.R")这将定义 do_stuff (在我的默认全局环境中,但我们会稍微掩盖一下)。

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

最佳答案

像这样的东西应该工作:

#!/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])
}
}
}

关于r - 我可以判断 R 脚本是否在 littler 下运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26277637/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com