This should help: > invisible(gc()) > > m0 <- memory.size() > mem.usage <- function(){invisible(gc()); memory.size() - m0} > Mb.size <- function(x)print(object.size(x), units="Mb") > > zz <- data.frame(a=runif(1000000), b=runif(1000000)) > mem.usage() [1] 15.26 > Mb.size(zz) 15.3 Mb > a <- zz$a > mem.usage() [1] 15.26 > Mb.size(a) 7.6 Mb > a[2] <- 100 > mem.usage() [1] 22.89 > Mb.size(a) 7.6 Mb
You can see that a <- zz$a really has no impact on your memory usage. It is when you start modifying it that R needs to store a whole new object in memory. On Thu, Feb 9, 2012 at 5:17 PM, Sam Steingold <s...@gnu.org> wrote: >> zz <- data.frame(a=c(1,2,3),b=c(4,5,6)) >> zz > a b > 1 1 4 > 2 2 5 > 3 3 6 >> a <- zz$a >> a > [1] 1 2 3 >> a[2] <- 100 >> a > [1] 1 100 3 >> zz > a b > 1 1 4 > 2 2 5 > 3 3 6 >> > > clearly a is a _copy_ of its namesake column in zz. > > when was the copy made? when a was modified? at assignment? > > is there a way to find out how much memory an object takes? > > gc() appears not to reclaim all memory after rm() - anyone can confirm? > > thanks! > > -- > Sam Steingold (http://sds.podval.org/) on Ubuntu 11.10 (oneiric) X > 11.0.11004000 > http://www.childpsy.net/ http://mideasttruth.com http://americancensorship.org > http://www.memritv.org http://jihadwatch.org http://ffii.org > C combines the power of assembler with the portability of assembler. > > ______________________________________________ > 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.