[R] Two Questions on R (call by reference and pre-compilation)

Steve Lianoglou mailinglist.honeypot at gmail.com
Wed May 5 00:08:38 CEST 2010


Hi,

On Tue, May 4, 2010 at 5:05 PM, Ruihong Huang
<ruihong.huang at wiwi.hu-berlin.de> wrote:
> Hi All,
>
> I have two questions on R. Could you please explain them to me? Thank you!
>
> 1) When call a function, R typically copys the values to formal arguments
> (call by value).

This is technically incorrect.

As far as I know, R has "copy-on-write" semantics. It will only make a
copy of the passed in object if you modify it within your function.

> This is very cost, if I would like to pass a huge data set
> to a function. Is there any situations that R doesn't copy the data, besides
> pass data in an environment object.

This question comes up quite often, you could try searching the
archives to get more info about that (using gmane might be helpful).

Check out this SO thread as well:
http://stackoverflow.com/questions/2603184/r-pass-by-reference

> 2) Does R pre-compile the object function to binary when running "optim"? I
> experienced the R "optim" is much slower than the MATLAB "fmincon" function.
> I don't know MATLAB has done any pre-compilation on the script for object
> function or not. But perhaps, we can increase R performance by some sort of
> pre-compilation during running time.

If I had to guess, I'd guess that it doesn't, but let's see what the
gurus say ...

-- 
Steve Lianoglou
Graduate Student: Computational Systems Biology
 | Memorial Sloan-Kettering Cancer Center
 | Weill Medical College of Cornell University
Contact Info: http://cbio.mskcc.org/~lianos/contact



More information about the R-help mailing list