Fri, 15 Sep 2000 10:33:33 -0700 (PDT)
On Fri, 15 Sep 2000, Paul Gilbert wrote:
> I've often wondered about this. Any comments from someone who really knows the
> internals of R? When I first implemented it I did some testing and didn't notice
> any really big slowdown and I do use a lot of fairly big (multi MB size)
> objects. But notice that the difference is really in the function call, not in
> the copying of objects. A function using classed would end
> classed(x, "whatever") }
> rather than
> class(x) <- "whatever"
> I think the copy is (or is not) made in both cases.
Setting an attribute doesn't result in a copy, but setting one in a
function will: a reference to x is initially passed to the function, but
when the attribute is set a copy is made so that the local x rather than
the global one is modified. I don't think another copy is made when
classed() returns, but I'm not sure. Using classed() makes at least one
more copy that using class()<-.
For interpreted "foo<-" functions this wouldn't be true -- the same
amount of copying would be done either way -- but class() is special.
Assistant Professor, Biostatistics
University of Washington, Seattle
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: firstname.lastname@example.org