Check out ‹klmr/modules› on Github (distinct from CRAN’s ‹modules›!). It looks pretty much exactly like what you want:
https://github.com/klmr/modules It has an extensive README and vignette explaining the usage. Cheers, Konrad -- Konrad Rudolph On Sun, 2 Oct 2016 at 18:31 Kynn Jones <kyn...@gmail.com> wrote: > I'm looking for a way to approximate the "zero-overhead" model of code > reuse available in languages like Python, Perl, etc. > > I've described this idea in more detail, and the motivation for this > question in an earlier post to R-help > (https://stat.ethz.ch/pipermail/r-help/2016-September/442174.html). > > (One of the responses I got advised that I post my question here instead.) > > The best I have so far is to configure my PROJ_R_LIB environment > variable to point to the directory with my shared code, and put a > function like the following in my .Rprofile file: > > import <- function(name){ > ## usage: > ## import("foo") > ## foo$bar() > path <- file.path(Sys.getenv("PROJ_R_LIB"),paste0(name,".R")) > if(!file.exists(path)) stop('file "',path,'" does not exist') > mod <- new.env() > source(path,local=mod) > list2env(setNames(list(mod),list(name)),envir=parent.frame()) > invisible() > } > > (NB: the idea above is an elaboration of the one I showed in my first > post.) > > But this is very much of an R noob's solution. I figure there may > already be more solid ways to achieve "zero-overhead" code reuse. > > I would appreciate any suggestions/critiques/pointers/comments. > > TIA! > > kj > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel > [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel