Skip to content

How to check if R.app is running?

4 messages · Duncan Murdoch, Nick Matzke, Brian Ripley

#
Hi, here's an obscure question someone can hopefully help with.

I have some R code that uses stuff from parallel (now a part 
of the R core in 2.15 I believe), especially clusterApply. 
However, this seems to cause problems in R.app, and I've 
seen advice to not use these multicore functions, e.g. doMC, 
in R.app.

So, I want to make this optional.  How can have a program 
check whether or not it is running in R.app or regular R?

Thanks so much for your help!!
Nick

PS: I saw this:
http://stackoverflow.com/questions/2020790/r-script-determine-whether-the-script-is-run-in-the-gui-or-from-command-line

Which says to use:

interactive()

...but that doesn't work.  Interactive R is fine (e.g. 
starting R from Mac Terminal), only R.app is not.
#
On 13-01-20 4:51 PM, Nick Matzke wrote:
.Platform$GUI will be different in the two cases:  "AQUA" for R.app and 
something else in other cases.  I don't know if that's a good test to 
find out if clusterApply is safe.

Duncan Murdoch
#
Probably good enough, thanks!
Nick
On 1/20/13 2:03 PM, Duncan Murdoch wrote:

  
    
#
On 20/01/2013 22:03, Duncan Murdoch wrote:
No, as clusterApply does not use multicore nor forking, and runs workers 
via Rscript.

The multicore functions in parallel are protected in R.app in current 
versions of R, at least.

There seems a lot of misinformation about.