That's very interesting, thanks a lot Duncan. I should re-read the R Language manual in more detail.
Sebastian On 6/3/05, Duncan Murdoch <[EMAIL PROTECTED]> wrote: > Sebastian Luque wrote: > > Hello, > > > > I'm trying to write a function using tcltk to interactively modify a plot > > and gather locator() data. I've read Peter's articles in Rnews, the help > > pages in tcltk, http://bioinf.wehi.edu.au/~wettenhall/RTclTkExamples/, > > plus a post in R-help sometime ago, but haven't found a solution. > > The idea goes something like this: > > > > require(tcltk) > > testplot <- function() { > > getcoords <- function(...) { > > locator(5) > > } > > x <- 1:1000 > > y <- rnorm(1000) > > plot(x, y) > > base <- tktoplevel() > > loc.pts <- tkbutton(base, text = "Get coordinates", command = > getcoords) > > quit.but <- tkbutton(base, text = "Quit", > > command = function() tkdestroy(base)) > > tkpack(loc.pts, quit.but) > > } > > > > I'd like testplot to return the value from getcoords. The "Get > > coordinates" button seems to be correctly calling getcoords, and locator > > is doing its job, but I don't know how to store its value. Any help is > > very much appreciated. > > You can do this with local functions. For example, > > testplot <- function() { > > coords <- NA > > getcoords <- function(...) { > coords <<- locator(5) > } > x <- 1:1000 > y <- rnorm(1000) > plot(x, y) > base <- tktoplevel() > loc.pts <- tkbutton(base, text = "Get coordinates", command = > getcoords) > quit.but <- tkbutton(base, text = "Quit", > command = function() tkdestroy(base)) > tkpack(loc.pts, quit.but) > return(function() coords) > } > > This stores the results in a variable named coords in the testplot > frame. testplot itself returns a function that can read that value. > You'd use it like this: > > lastval <- testplot() > > ## do some button clicking... > > lastval() # will print the result of the last click. > > This is one of the somewhat weird but very nice features of R. S-PLUS > doesn't work this way. > > Duncan Murdoch > -- Sebastian Luque Department of Biology Memorial University of Newfoundland ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html