[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