Passing by value does not necessarily mean physical copying. Check out this:
> x <- matrix(1:1000^2, 1000, 1000) > gc() used (Mb) gc trigger (Mb) max used (Mb) Ncells 114520 3.1 350000 9.4 350000 9.4 Vcells 577124 4.5 1901092 14.6 1577448 12.1 > f <- function(x) { y <- max(x); print(gc()); y } > f(x) used (Mb) gc trigger (Mb) max used (Mb) Ncells 114560 3.1 350000 9.4 350000 9.4 Vcells 577133 4.5 1901092 14.6 1577448 12.1 [1] 1000000 > R.version.string [1] "R version 2.10.1 (2009-12-14)" > win.version() [1] "Windows Vista (build 6002) Service Pack 2" On Mon, Apr 5, 2010 at 7:35 AM, Roger Gill <roger.gill1...@yahoo.co.uk> wrote: > Dear All, > > I would like some advice on creating R packages, passing by reference and oo > R. > > I have created a package that is neither elegant nor extensible and rather > cumbersome (it works). I would like to re write the code to make the package > distributable (should it be of interest) and easy to maintain. > > The package is for Bayesian model determination via a reversible jump > algorithm and has currently been written to minimise computational expense. > > At every iteration of the MCMC I make a call to a likelihood function. Here, > I pass by value a matrix containing the explanatory variables of the current > model and this is quite costly if X is quite large. This matrix could change > at every iteration (it's certainly proposed). Ideally I would pass by > reference (a pointer in C, \@ in perl etc...) and allow the user to specify > this function should they so desire. This is where I become a little stuck. > > I have searched the lists, used google and not found a accepted solution. How > do I pass by ref? What are my options? Can you point me towards some suitable > reading? Are there any good examples? How have others overcome this problem. > > Thanks in advance, > > best wishes > > Roger > > > > > ______________________________________________ > 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. > ______________________________________________ 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.