在终端中 运行 时,R 弹出框不起作用
R pop-up boxes not working when run in terminal
我正在使用 svDialogs(zenity 的 R 包装器库)创建 GUI 弹出框,当我通过 R studio 或 R 终端会话 运行 代码时,这工作正常(运行宁Ubuntu16.04).
一个最小的例子是:
library(svDialogs)
dlgMessage("Hello Whosebug!")
但是,当我 运行 代码直接通过终端时它不起作用:
Rscript --vanilla -e 'source("path/to/file.R")'
终端显示库已加载,并没有显示错误信息:但是弹窗没有出现!如果我在调用 dlgMessage 后添加一行,那行 运行s。即如果我 运行 修改后的代码
library(svDialogs)
dlgMessage("Hello Whosebug!")
print("Goodbye Whosebug!")
然后第二行确实显示在终端中 window(即代码不会在 dlgMessage 处崩溃)。
很高兴解决方案不依赖于 dlgMessage,如果有解决方法:我以前尝试过使用 system() 通过 R 本机使用 Zenity,但无法让它工作。
R 在交互或非交互模式下可以是 运行,默认值取决于是否假设有人工操作员,请参阅 interactive 的文档。
当运行处于非交互模式时,R不会显示任何弹出框。默认情况下,当 运行ning 代码在终端中时,R 运行s 处于非交互模式。按照上面的文档,可以使用 linux
中的命令覆盖它
R --vanilla --interactive < "path/to/file.R"
类似地在 Windows 中使用 --ess
和 Rterm.exe
我正在使用 svDialogs(zenity 的 R 包装器库)创建 GUI 弹出框,当我通过 R studio 或 R 终端会话 运行 代码时,这工作正常(运行宁Ubuntu16.04).
一个最小的例子是:
library(svDialogs)
dlgMessage("Hello Whosebug!")
但是,当我 运行 代码直接通过终端时它不起作用:
Rscript --vanilla -e 'source("path/to/file.R")'
终端显示库已加载,并没有显示错误信息:但是弹窗没有出现!如果我在调用 dlgMessage 后添加一行,那行 运行s。即如果我 运行 修改后的代码
library(svDialogs)
dlgMessage("Hello Whosebug!")
print("Goodbye Whosebug!")
然后第二行确实显示在终端中 window(即代码不会在 dlgMessage 处崩溃)。
很高兴解决方案不依赖于 dlgMessage,如果有解决方法:我以前尝试过使用 system() 通过 R 本机使用 Zenity,但无法让它工作。
R 在交互或非交互模式下可以是 运行,默认值取决于是否假设有人工操作员,请参阅 interactive 的文档。
当运行处于非交互模式时,R不会显示任何弹出框。默认情况下,当 运行ning 代码在终端中时,R 运行s 处于非交互模式。按照上面的文档,可以使用 linux
中的命令覆盖它R --vanilla --interactive < "path/to/file.R"
类似地在 Windows 中使用 --ess
和 Rterm.exe