gpt4 book ai didi

r - 自动响应 “Yes”对R库的提示

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

我正在努力定义一个Docker容器,该容器可以在云环境中启动,并在我们公司的数据库上运行一些报告,然后自行分解,而无需数据科学团队(包括我自己)的参与。

我几乎完成了所有工作的启动和运行,但有一个令人烦恼的异常(exception)-报告是使用我们使用了几年的一些代码在R中完成的。我在Rocker诗句的基础上构建,并添加了需求库。

关于需求的烦人的事情(在此用例中)是,当它第一次运行时,它会询问以下内容:

>library('needs')

Should `needs` load itself when it's... needed? (this is recommended)

1: No
2: Yes

Selection:

在典型的交互式设置中,这很好,我只需键入"is",然后按Enter键就可以了。但是,当我希望整个环境每周独立构建和运行一次时,我不想回答这个问题。我想假设是。

到目前为止,我尝试过的内容包括:
library('needs', quiet=TRUE)
library('needs', quietly=TRUE)
suppressMessages(library('needs', quietly=TRUE))
suppressWarnings(suppressMessages(library('needs', quietly = T)))
suppressPackageStartupMessages(library('needs', quietly=TRUE))

没有一个能解决问题。 needs documentation允许以后以编程方式更改此设置,但不能在首次运行需要时定义该设置:

Recommended use is to allow the function to autoload when prompted the first time the package is loaded interactively. To change this setting later, run needs:::autoload(TRUE) or needs:::autoload(FALSE) to turn autoloading on or off, respectively.



我也尝试过安静地安装需求,但无济于事。不幸的是,我无法在Dockerfile中运行bash命令来响应"is",或者至少我没有找到方法。

我想避免删除需求的依赖关系,因为这将涉及大量代码重构。

关于如何解决这个问题的任何想法?

谢谢! :]
-文斯

更新

解决方案有点笨拙,但是在我的Dockerfile中,我正在对该文件进行vim编辑,该文件需要分配给sysfile变量:
sysfile <- system.file("extdata", "promptUser", package = "needs")

对于我来说,它是/ usr / local / lib / R / site-library / needs / extdata / promptUser,然后将其内容从“1”更改为“0”来解决我的问题。

最佳答案

更好的解决方案可能是这样做,这样它就不会首先提出问题。您可以查看它在github上的包加载时运行的代码:https://github.com/cran/needs/blob/master/R/needs-package.R

如果您设置了该选项,则它会事先进行检查,因此不需要首先提出以下问题:

options(needs.promptUser = FALSE)

关于r - 自动响应 “Yes”对R库的提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53547329/

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