gpt4 book ai didi

python - if(interactive()) 是等同于 pythonic “if __name__ == ” __main_ _“: main()” 的 R 吗?

转载 作者:太空狗 更新时间:2023-10-29 23:59:14 24 4
gpt4 key购买 nike

我希望 R 脚本有一个在交互模式下执行的 main() 函数。但是 main() 函数不应在获取文件时执行。

There is already a question about this一个很好的答案建议使用 interactive() 函数。但是,这对我不起作用。我没有足够的声誉点来评论或回答那个问题。所以我在这里再次提出这个问题。

我在 script_1.r 中写了这个

if(interactive()){
your main code here
}

如果我使用 knitr 放弃 html 或 pdf 文档,则获取脚本。 if(interactive()) 下的这段代码不会被执行。这对我有好处,这就是我想要的。

我的问题是,如果我在交互模式下从 script_2.r source("script_1.r"),它仍然会运行此 下的代码if(interactive()) 部分。

最佳答案

获得所需控制的最佳方式是使用选项。

例如,'script.r' 看起来像这样:

main <- function() {
message('main!')
}

if (getOption('run.main', default=TRUE)) {
main()
}

如果您在交互模式下获取文件并且不希望 main 执行,只需在调用 之前调用 options(run.main=FALSE) >来源。如果您将脚本与 knitr 一起使用并且希望执行 main,请不要设置该选项,它将默认为 TRUE。或者,如果您不希望 main 与 knitr 一起运行,请在调用它之前调用 options(run.main=FALSE)

关于python - if(interactive()) 是等同于 pythonic “if __name__ == ” __main_ _“: main()” 的 R 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21383058/

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