-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
project.org] On Behalf Of David Winsemius
Sent: Thursday, October 25, 2012 8:20 PM
To: jim holtman
Cc: r-help
Subject: Re: [R] problem in finding sizes of objects using a for loop
On Oct 25, 2012, at 10:56 AM, jim holtman wrote:
Here is a function I use to get the size of objects:
Here is an example output:
Size Mode
allStores 7,303,224 list
convertedStores 0 NULL
f.createCluster 40,508 function
x 41,672 list
**Total 7,385,404 -------
That's far more elegant that the one I use;
getsizes <- function() {z <- sapply(ls(envir=globalenv()),
function(x) object.size(get(x)))
(tmp <- as.matrix(rev(sort(z))[1:10]))}
getsizes()
Only returns the sorted-by-size matrix of the largest ten objects, but
modifying it to return all of them should be trivial.
--
david.
my.ls <- function (pos = 1, sorted = FALSE, envir =
{
.result <- sapply(ls(envir = envir, all.names = TRUE),
function(..x) object.size(eval(as.symbol(..x),
envir = envir)))
if (sorted) {
.result <- rev(sort(.result))
}
.ls <- as.data.frame(rbind(as.matrix(.result), `**Total` =
names(.ls) <- "Size"
.ls$Size <- formatC(.ls$Size, big.mark = ",", digits = 0,
format = "f")
.ls$Mode <- c(unlist(lapply(rownames(.ls)[-nrow(.ls)], function(x)
mode(eval(as.symbol(x),
envir = envir)))), "-------")
.ls
}
On Thu, Oct 25, 2012 at 2:24 AM, Purna chander <chanderbio at gmail.com>
Dear All,
I wanted to extract the sizes of all created objects. For E.g when I
created 2 objects(x and y), I got their sizes using the following
code:
x<-rnorm(10000)
y<-runif(100,min=40,max=1000)
ls()
824 bytes
However, I was unable to get their sizes when I used a for loop in
objects<-ls()
for (i in seq_along(objects)){
+ print(c(objects[i],object.size(objects[i])))
+
+ }
[1] "x" "64"
[1] "y" "64"
The result obtained by me is wrong in second case.
I understood that variables x and y are treated as characters. But
rectify this problem.
Regards,
Purna