[R] Event handling in R

beetonn Nicholas.Beeton at utas.edu.au
Fri Dec 16 06:49:51 CET 2011


Dear R-helpers, 

I've just started playing with getGraphicsEvent() in R, and was wondering if there is a simple way to stop this function waiting for input after a pre-defined time, instead of relying either on a non-NULL value from one of the event handlers or for a user-interrupt for it to halt (as per the R manual).

The only way that I've thought of to make this work is using setTimeLimit to kill the function after a set time - here's a (messy) example:

setTimeLimit(cpu = 1)
plot(0, 0)
eventEnv <- getGraphicsEventEnv()
setGraphicsEventHandlers(prompt = 'Test')
while(TRUE) 
{
   err <- try(q <- getGraphicsEvent(), silent=TRUE)
   print(err)
}
# Not run
setTimeLimit(cpu = Inf)

but setTimeLimit doesn't seem to kill getGraphicsEvent() properly, as running this code just ends up with the repeated returned error of "Error in getGraphicsEvent(): recursive use of getGraphicsEvent not supported" instead of the intended "Error: reached CPU time limit" every second.

Is there a way to get around this problem, or a different method to make this work?  Or should I quit dabbling in things beyond my ken?


Thanks,
Nick



More information about the R-help mailing list