2008年06月05日 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のプログラムには慣れていないことと、作る時間があるかということかな。