2008年
6月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

セットアップ日記


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