Hello, I am noticing different behavior with respect to .First when working in Terminal or working with the R gui on Mac OSX, and I am wondering if someone might clarify for me the intention behind this. In both cases, I am running 3.0.2 on the same machine.
In my ~/.Rprofile I have a function .First( ) I then create a new function .First in my workspace, and save the image on exit. If I do this in Terminal, the .First from my saved image will execute, while the .First from my .Rprofile will not. If I do this in the R gui, BOTH .First functions execute. (obviously, if the two functions are identical, the "same" function executes twice.) It appears that there is a function .First in tools:RGUI (see below). The one saved here is the .First loaded from .Rprofile. Inspecting the two reveals that the one in .GlobalEnv is the function manually created. My questions are: (1) Is the intended behavior that a .First in a restored image will take precedence over a .First in .Rprofile. (I assume so, since according to ?Startup the image loads after the .Rprofile is sourced) (2) Why is the .First function from .Rprofile saved to tools:RGUI? (3) If a package contains a function .First, will both that function and the user's .First (assuming it exists) be executed at startup? Below are sessionInfo and some additional details: Thank you, Rick Mac OSX 10.9 I created a new user. In that users ~/.Rprofile, I have only the following function ## .Rprofile .First <- function() { cat("\n\nThis 'First' is from .Rprofile\n\n") } In my workspace, I then create a different function .First ## .Rprofile .First <- function() { cat("\n\nThis 'First' is manually created in the workspace\n\n") } quit("yes") Then re open R. Between execution in R.app & R in Terminal, I rm ~/.Rdata # ------- THIS IS FROM R.app > for (i in seq(search())) + cat(sprintf("%20s : %17s", search()[[i]], paste(ls(pattern="\\.First", all=TRUE, pos=i), collapse=", ")), "\n") .GlobalEnv : .First tools:RGUI : .__RGUI__..First package:stats : package:graphics : package:grDevices : package:utils : package:datasets : package:methods : Autoloads : package:base : .First.sys THIS IS FROM TERMINAL > for (i in seq(search())) + cat(sprintf("%20s : %17s", search()[[i]], paste(ls(pattern="\\.First", all=TRUE, pos=i), collapse=", ")), "\n") .GlobalEnv : .First package:stats : package:graphics : package:grDevices : package:utils : package:datasets : package:methods : Autoloads : package:base : .First.sys # ------ SESSION INFO ------- # ## TERMINAL > sessionInfo() R version 3.0.2 (2013-09-25) Platform: x86_64-apple-darwin10.8.0 (64-bit) locale: [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 attached base packages: [1] stats graphics grDevices utils datasets methods base ## R.app R version 3.0.2 (2013-09-25) Platform: x86_64-apple-darwin10.8.0 (64-bit) locale: [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 attached base packages: [1] stats graphics grDevices utils datasets methods base # ------ END ------- # Ricardo Saporta Graduate Student, Data Analytics Rutgers University, New Jersey e: sapo...@rutgers.edu [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.