memory management
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 <sds at 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 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.