RでGUI


Rでもtcltkが使えるようだ。
ruby/tkについて調べていたら、Rでもtcl/tkが使えることが分かった。試しに、基本的なwidgetをつかったプログラムを書いてみた。

require(tcltk)
tt<-tktoplevel()
tkwm.geometry(tt, "200x100")
tkwm.title(tt,"Hello")
tm<-tkmenu(tt)
 tkconfigure(tt,menu=tm)
 tmf<-tkmenu(tm,tearoff=FALSE)
 tkadd(tmf,"command",label="open",
  command=function(){fl<-tkgetOpenFile();cat(tclvalue(fl),"\n")})
 tkadd(tmf,"command",label="quit",command=function(){tkdestroy(tt)})
 tkadd(tm,"cascade",label="file",menu=tmf)
tkpack(tf1<-tkframe(tt),side='left')
tkpack(tf2<-tkframe(tt),side='left')
tkpack(tklabel(tf1,text='hello'))
tkpack(tkbutton(tf1,text='push',
 command=function()tkmessageBox(message="hello!")))
te<-tclVar("entry")
 tkpack(tkentry(tf2,width=10,textvariable=te))
tkpack(tkbutton(tf2,text='push',command=function()cat(tclvalue(te),"\n")))

Rは統計処理ソフトだが、グラフソフトとしても非常に強力だと思っている。しかし、GUIで使うのが困難なので、素人にはなかなか難しい。これに簡単なGUIをつけてみようと思って、rsrubyを使って、ruby/tkでGUIを作ってみたが、Rの処理が終わってしまうと、グラフの再描画が行われないなど、いろいろと問題があった。実は、Rから直接tcl/tkをたたけば、良いものができるかも知れない。問題はRのプログラムには慣れていないことと、作る時間があるかということかな。