2017-11-19 11 views
0

svDialogs(Rラッパーライブラリのzenity)を使用してGUIポップアップボックスを作成しています。これはRスタジオまたはR端末セッション(Ubuntu 16.04を実行中)から取得します。端末で実行したときにRポップアップボックスが機能しない

最低限の例は次のとおりです。

library(svDialogs) 
dlgMessage("Hello Stackoverflow!") 

しかし、私はターミナルから直接コードを実行すると、それは動作しません。

Rscript --vanilla -e 'source("path/to/file.R")' 

を端末は、ライブラリがロードされていることを示し、そしてませんエラーメッセージを表示します:しかし、ポップアップは表示されません! dlgMessageの呼び出しの後に追加の行を追加すると、その行が実行されます。私が変更されたコード

library(svDialogs) 
dlgMessage("Hello Stackoverflow!") 
print("Goodbye Stackoverflow!") 

を実行する場合、すなわち、第2のライン(すなわちコードがdlgMessageにクラッシュされていない)ターミナルウィンドウに表示ありません。

workarondがある場合、dlgMessageに依存しないソリューションには満足しています。これまで、system()を使用してRを通じてネイティブにZenityを使用しようとしましたが、これを動作させることはできませんでした。

答えて

0

Rは、対話型モードまたは非対話型モードで実行できます。デフォルトは、オペレータがいることが前提です。interactiveのドキュメントを参照してください。

非対話モードで実行すると、Rにはポップアップボックスは表示されません。デフォルトでは、端末でコードを実行するとき、Rは非対話モードで実行されます。上記のドキュメントに続いて、これはRterm.exe

--ess使用して、Windowsに

R --vanilla --interactive < "path/to/file.R" 

同様にLinux上でコマンドを使用して上書きすることができます

関連する問題