First, thanks to those of you who responded to my previous post about my
code that was taking longer and longer to process. After following your
suggestions, and I now thinking that the problem was some calls to
Rf_duplicate in my C code.
So I'm hoping I could get some clarification on what Rf_duplicate actually
does. What is the real difference between
PROTECT(y=x); and
PROTECT (y = duplicate(x)); ?
I do use duplicate on the list objects that are passed directly from R,
since in the passed, I got some odd results of the original lists being
changed (when I didn't want them to be). So suppose that x is the list that
is passed from R to the C code. Is there any (conceivable) reason that I
might want to do something like
PROTECT(y = duplicate(x));
PROTECT(z = duplicate(VECTOR_ELT(y,2)));
Instead of
PROTECT(y=duplicate(x));
PROTECT(z = VECTOR_ELT(y,2));
And if I did create a duplicate, is there a way to destroy it manually
before the end of the function, rather than rely on on the R garbage
collector?
Thanks,
Michael
Michael Braun
Assistant Professor of Marketing
MIT Sloan School of Management
One Amherst St., E40-169
Cambridge, MA 02142
(617) 253-3436
[EMAIL PROTECTED]
[[alternative HTML version deleted]]
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel