通过脚本运行用R编写的GUI

通过脚本运行用R编写的GUI,r,user-interface,interactive,R,User Interface,Interactive,我在R中使用tcltk包编写了一个小型图形用户界面。现在,我希望用户能够通过运行脚本来启动界面,而无需使用RStudio或命令行,只需双击脚本图标(在Windows中)。但是我在做这件事时遇到了一些问题 用Rscript.exe运行它会启动一个非交互式R会话,我想我需要一个交互式会话。所以我试着: echo source("GUI.R") | R.exe --ess --vanilla GUI.R文件中的R命令interactive()现在确实返回TRUE,但是GUI窗口仍然只会弹出并立即关闭

我在R中使用tcltk包编写了一个小型图形用户界面。现在,我希望用户能够通过运行脚本来启动界面,而无需使用RStudio或命令行,只需双击脚本图标(在Windows中)。但是我在做这件事时遇到了一些问题

用Rscript.exe运行它会启动一个非交互式R会话,我想我需要一个交互式会话。所以我试着:

echo source("GUI.R") | R.exe --ess --vanilla
GUI.R文件中的R命令interactive()现在确实返回TRUE,但是GUI窗口仍然只会弹出并立即关闭。 在此之后暂停脚本没有帮助


有人知道如何正确地做吗?或者如果可能的话?

我知道这是一条旧消息,但我不得不回复。我一直在寻找解决类似问题的方法,已经有相当一段时间了,但没有一个有效。问题是RScript.exe、Rcmd.exe等不是交互式的,您对此无能为力

我在使用Rscript.exe运行的文件(我使用的是tlctk2)的最后使用tkwait.window()解决了这个问题

确保没有if(interactive())例程,因为Rscript.exe不是交互式的,因此将返回FALSE到interactive()

结果简单有效。使用tcl/tk GUI创建的窗口将保持运行,直到使用tkdestroy()或仅通过关闭窗口将其销毁

#usage
require(tcltk2)
#Your script
MyMainWindow<<-tktoplevel()
#Your script
tkwait.window(MyMainWindow)
#END
#用法
需要(tcltk2)
#你的剧本

MyMainWindow为什么不在Windows桌面上运行一个可双击的批处理文件?这就是我试图做的,但是窗口立即关闭。