Rev 11368 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
require(tcltk) || stop("tcltk support is absent")local({dialog.t.test <- function(){tt <- tktoplevel()tkwm.title(tt,"t test")x.entry <- tkentry(tt, textvariable="xvar")y.entry <- tkentry(tt, textvariable="yvar")reset <- function(){tclvar$xvar<-""tclvar$yvar<-""tclvar$alt<-"two.sided"tclvar$eqvar<-"0"}reset.but <- tkbutton(tt, text="Reset", command=reset)submit.but <- tkbutton(tt, text="submit",command=function()tclvar$done<-1)build <- function(){x <- parse(text=tclvar$xvar)[[1]]y <- parse(text=tclvar$yvar)[[1]]alt<- tclvar$altvv <- as.logical(as.numeric(tclvar$eqvar))substitute(t.test(x,y,alternative=alt,var.equal=vv))}var.cbut <- tkcheckbutton(tt,text="Equal variance", variable="eqvar")alt.rbuts <- tkframe(tt)tkpack(tklabel(alt.rbuts, text="Alternative"))for ( i in c("two.sided", "less", "greater")){tmp<-tkradiobutton(alt.rbuts, text=i, variable="alt", value=i)tkpack(tmp,anchor="w")}tkgrid(tklabel(tt,text="t-test"),columnspan=2)tkgrid(tklabel(tt,text="x variable"), x.entry)tkgrid(tklabel(tt,text="y variable"), y.entry)tkgrid(var.cbut, alt.rbuts)tkgrid(submit.but, reset.but)if (tclvar$alt=="") tclvar$alt<-"two.sided"## capture destroy (e.g. from window controls## otherwise the tkwait hangs with nowhere to gotkbind(tt, "<Destroy>", function()tclvar$done<-2)tkwait.variable("done")if(tclvar$done=="2") stop("aborted")tkdestroy(tt)cmd <- build()cat("### Command executed via Tk ###\n")cat(deparse(build()),sep="\n")cat("### -----\n")eval(cmd)}cat("******************************************************\n","The source for this demo can be found in the file:\n",paste(R.home(),"demos","tcltk","tkttest.R", sep=.Platform$file.sep),"\n******************************************************\n")data(airquality)attach(airquality)tclvar$xvar <- "Ozone[Month==5]"tclvar$yvar <- "Ozone[Month==8]"dialog.t.test()})