renaming objects
or, in other terms: > set.seed(1) > x <- runif(1e7) > x.add <- tracemem(x) > y <- x > y.add <- tracemem(y) > identical(x.add, y.add) [1] TRUE ie, both objects have the same memory address - therefore, not a copy: > x.add [1] "<0x2000000>" > y.add [1] "<0x2000000>" now, observe what happens when you modify "y" > y[1] <- 1 tracemem[0x2000000 -> 0x6c4c000]: > tracemem(y) [1] "<0x6c4c000>" now, it's a copy... =) b
On Mar 3, 2008, at 5:48 PM, hadley wickham wrote:
On Mon, Mar 3, 2008 at 4:37 PM, Rolf Turner <r.turner at auckland.ac.nz> wrote:
On 4/03/2008, at 10:38 AM, Ericka Lundstr?m wrote:
On 03/03/2008, at 22.20, Giles.Crane at doh.state.nj.us wrote:
Is there a way to rename R objects?
I am looking for a way to rename objects
without making new objects.
#For example:
x = c(1:40)
# I wish to use a function to rename x, already created, to y,
perhaps by
obj.rename(x,y)
# or
obj.rename("x","y")
y <- x # changes x to y with same values.
That makes a new object --- which is precisely what the
enquirer
wanted ***NOT*** to do.
It doesn't though!
gc()
used (Mb) gc trigger (Mb) max used (Mb) Ncells 133095 3.6 350000 9.4 350000 9.4 Vcells 87049 0.7 786432 6.0 478831 3.7
a <- runif(1e7) gc()
used (Mb) gc trigger (Mb) max used (Mb) Ncells 133112 3.6 350000 9.4 350000 9.4 Vcells 10087364 77.0 11458389 87.5 10087374 77.0
b <- a gc()
used (Mb) gc trigger (Mb) max used (Mb) Ncells 133117 3.6 350000 9.4 350000 9.4 Vcells 10087365 77.0 12111308 92.5 10087476 77.0 R will only create a copy if either of a or b is modified. Hadley -- http://had.co.nz/
______________________________________________ R-help at 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.