[R] unload & reload a (new version of a) package

Henrik Bengtsson hb at stat.berkeley.edu
Tue Jan 15 04:13:09 CET 2008


On 14/01/2008, hadley wickham <h.wickham at gmail.com> wrote:
> On Jan 14, 2008 5:48 PM, Harte, Thomas P <THarte at tiaa-cref.org> wrote:
> > i'm putting the final touches on a package that i'm developing and i
> > noticed
> > that if i detach the package, and then re-build & re-install it (using R
> > CMD)
> > then I can't get the newer version of the package to load in the
> > existing R
> > session (i have to close it out and start a new session, then the newer
> > version of the package is loaded).
> >
> > looking through the source of 'detach'  i see :
> >
> >       .Call("R_lazyLoadDBflush", paste(libpath, "/R/", pkgname,
> >             ".rdb", sep = ""), PACKAGE = "base")
> >
> > is there some absolute way similar to the above to flush the package db
> > and ensure that a newer version of the package can be loaded into the
> > existing R session? detach calls .Last.lib and seems to go through the
> > motions of purging the loaded package; why, then, is the package still
> > lurking around in the existing R session?
>
> For testing, I usually just re"source" all of my code:
>
> lapply(dir("~/documents/ggplot/ggplot/R", full.name=T), source)
>
> obviously it's no good for testing data, namespaces or compiled code,
> but 95% of the time it's good enough for me.

In R.utils, there is sourceDirectory(), which in turn calls sourceTo()
on each file, and it (actually the latter) takes an argument
'modifiedOnly' that allows you to only source those files modified
since last time you source them, e.g.

 sourceDirectory("~/documents/ggplot/ggplot/R", modifiedOnly=TRUE)

/Henrik

>
> Hadley
>
> --
> http://had.co.nz/
>
> ______________________________________________
> R-help at 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.
>




More information about the R-help mailing list