[R] Introduce a new function in a package?

Gabor Grothendieck ggrothendieck at gmail.com
Wed Apr 6 17:12:49 CEST 2005


Some other advantages of making your own package are:

- you can use help.search to search for your own functions even if you
  don't load the package

- if you can't even remember where your functions are (and I often
  can't) then you may not remember what they do either and packaging
  them gives a convenient way to associate documentation.  Once you
  have found your function you can use ? to gets its documentation.

- you get to use ' CMD check' whch is very helpful

If you are doing it on Windows the amount of software you need to
download and install first may be a bit offputting and you may need
to sort out some path and latex problems but its probably worth it
in the end if you do enough R development.

On Apr 6, 2005 10:55 AM, Don MacQueen <macq at llnl.gov> wrote:
> Expressions in .Rprofile are executed *before* any previously saved
> global environment is loaded (i.e., before the .RData file in the
> current working directory is loaded, causing the message "
> [Previously saved workspace restored]" to a appear).
> 
> If you define a function in .Rprofile, and then later answer "yes" to
> the "Save workspace image?" question when you quit R, the function
> will exist in the saved workspace.
> 
> When you next start R, the version that comes in from .Rprofile will
> be replaced by the version in the saved workspace -- because the
> saved workspace is loaded after .Rprofile is executed.
> 
> This means that if you decide to change the function in .Rprofile,
> your changes will immediately be lost when the previously saved
> workspace is loaded, since that has the previous version.
> 
> So defining personal utility functions in .Rprofile is not very
> effective. Much, much, better to create a package, and then require()
> that package in .Rprofile. And since creating a package is really
> very easy, I strongly recommend that option.
> 
> Saving the functions in an image file and then attaching it is fine,
> but less convenient, in my opinion, since you have to keep track of
> where it is in the file system.
> 
> -Don
> 
> At 4:09 PM +0100 4/6/05, Jan T. Kim wrote:
> >On Wed, Apr 06, 2005 at 09:57:00AM -0400, Roger D. Peng wrote:
> >>  I think the usual way is to create an R package for yourself and load
> >>  it when you need it for whatever project.
> >>
> >>  -roger
> >
> >Alternatively, one can also write the function in question into one's
> >~/.Rprofile; then, it's automatically available in all R sessions.
> >To avoid confusion, make sure that you choose a unique name, i.e. one
> >that isn't used by any package, if possible.
> >
> >This method should be used only for functions intended to provide some
> >convenience in interactive sessions, code in scripts should not rely
> >on functions being provided by ~/.Rprofile. For scripting, an R package
> >is definitely preferred.
> >
> >Best regards, Jan
> >
> >>  Luis Ridao Cruz wrote:
> >>  >R-help,
> >>  >
> >>  >Sometimes I define functions I wish to have in any R session.
> >>  >The obvious thing to do is copy-paste the code
> >>  >The thing is that sometimes I don't know where I have the function
> >>  >code.
> >>  >
> >>  >My question is if somehow I could define a function and "introduce" it
> >>  >(let's say 'base' package ) so that
> >>  >could be used anytime I run a different R project.
> >>  >
> >>  >Thank you in advance
> >>  >
> >>  >______________________________________________
> >>  >R-help at 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
> >>  >
> >>
> >>  ______________________________________________
> >>  R-help at 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
> >
> >--
> >  +- Jan T. Kim -------------------------------------------------------+
> >  |    *NEW*    email: jtk at cmp.uea.ac.uk                               |
> >  |    *NEW*    WWW:   http://www.cmp.uea.ac.uk/people/jtk             |
> >  *-----=<  hierarchical systems are for files, not for humans  >=-----*
> >
> >______________________________________________
> >R-help at 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
> 
> --
> --------------------------------------
> Don MacQueen
> Environmental Protection Department
> Lawrence Livermore National Laboratory
> Livermore, CA, USA
> 
> ______________________________________________
> R-help at 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
>




More information about the R-help mailing list