[R] detecting the sourcing of site profile on Startup versus post-Startup

Benjamin Tyner btyner at gmail.com
Thu Apr 24 03:11:09 CEST 2014


   Thanks  Duncan!  Yes, I considered taking advantage of .First, but was
   concerned that the .First defined by the site profile could be masked by a
   possible .First defined by the user profile (I neglected to mention that
   "--no-init-profile"  [sic]  in  the  example  I gave was a simplifying
   assumption, sorry about that).
   On 04/23/2014 06:55 AM, Duncan Murdoch wrote:

     On 22/04/2014, 8:59 PM, Benjamin Tyner wrote:

     Greetings,
     Is there any way to programmatically detect whether a piece of code is
     being run within the initial (Startup) sourcing of the site profile?
     For example, say I have a site profile, "/path/to/Rprofile.site". Is
     there any function "my_func" which would return different values for
     these two instances:
         Rscript --no-site-profile --no-init-profile -e
     "sys.source('/path/to/Rprofile.site',  envir  = .BaseNamespaceEnv);
     my_func()"
     versus:
         export R_PROFILE=/path/to/Rprofile.site
         Rscript --no-init-profile -e "my_func()"

     The commandArgs() function could see the different command lines and your
     function could deduce the difference from that.
     As far as I know, R keeps no other records of the startup process, but if
     you can modify other files, you could leave a record when .First was run,
     and see that it was run before Rprofile.site in the first case. See
     ?Startup.
     Duncan Murdoch

   --
   


More information about the R-help mailing list