[R] problem in finding sizes of objects using a for loop

jim holtman jholtman at gmail.com
Thu Oct 25 19:56:33 CEST 2012


Here is a function I use to get the size of objects:

Here is an example output:

> my.ls()
                     Size     Mode
allStores       7,303,224     list
convertedStores         0     NULL
f.createCluster    40,508 function
x                  41,672     list
**Total         7,385,404  -------




my.ls <- function (pos = 1, sorted = FALSE, envir = as.environment(pos))
{
    .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` = sum(.result)))
    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> wrote:
> 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()
> [1] "x" "y"
>> object.size(x)
> 80024 bytes
>> object.size(y)
> 824 bytes
>
> However, I was unable to get their sizes when I used a for loop in the
> following way:
>
>> 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 to
> rectify this problem.
>
> Regards,
> Purna
>
> ______________________________________________
> 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.



-- 
Jim Holtman
Data Munger Guru

What is the problem that you are trying to solve?
Tell me what you want to do, not how you want to do it.




More information about the R-help mailing list