いろいろ倉庫

KNIME、EXCEL、R、Pythonなどの備忘録

【R】簡単にダイアログを表示したい

・お題:ダイアログを表示してぽちぽち選択できるようにしたい。

 

・shinyというパッケージを使うといろいろなGUIを作成できるらしいのだけれど、いかんせん構文が理解できないので、もっと簡単に、もっとシンプルなダイアログを利用することを考える。

 

・例えば、いくつかの選択肢から選んでもらうダイアログを作成してみる。

> library(utils) #ライブラリを読み込む。
> choice <- select.list(choices = c("A", "B", "C", "D", "E", "F", "G"),
+                       title = "Please choose one",
+                       graphics = TRUE)


・すると、以下のダイアログが出てくる。

 

・Dを選んでみると、choiceにDが代入される。

> choice
[1] "D"

 

・似たような機能に、menu関数がある。こちらはインデックスを返す。ダイアログは割愛。

> choice_index <- menu(choices = c("A", "B", "C", "D", "E", "F", "G"),
+                graphics = TRUE, 
+                title = "Please choose one")
> choice_index
[1] 6

 

・もう少しパターンを試したい。tcltkというパッケージを使ってみる。

> library(tcltk)
> choice <- tk_select.list(choices = c("A", "B", "C", "D", "E", "F", "G"),
+                          preselect = NULL, multiple = FALSE,
+                          title = "test")

 

・以下のダイアログが表示される。

・要素が返される。

> choice
[1] "B"

 

ディレクトリを選んでもらうダイアログも作れる。

> DIR <- tk_choose.dir(default = "",
+                      caption = "Select directory")

・ダイアログは割愛。

> DIR
[1] "C:/Users/Documents/R"

 

・ファイルを選ぶダイアログも作れる。複数選択することもできる。

> FIL <- tk_choose.files(default = "",
+                        caption = "Select files",
+                        multi = TRUE, filters = NULL, index = 1)

・ダイアログは割愛。
> FIL
[1] "C:/Users/Downloads/xxx.pdf"

 

・OK/Cancelのダイアログを作ることもできる。

> tk_messageBox(type = "okcancel",
+               message = "確認してください",
+               caption = "Message", default = "")

[1] "ok"

 

・typeを変更すれば、他にもいろいろなダイアログが作れる。"ok", "okcancel", "yesno", "yesnocancel", "retrycancel", "abortretryignore"などがある。

 

・tcltkパッケージを使いこなせばもっといろいろなダイアログが作れるみたいなので、そのうち調べてみたい。

 

 

おわり