[R] problem in finding sizes of objects using a for loop
David Winsemius
dwinsemius at comcast.net
Thu Oct 25 20:19:54 CEST 2012
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:
>
>> 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 -------
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 = 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.
>
> ______________________________________________
> 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.
David Winsemius, MD
Alameda, CA, USA
More information about the R-help
mailing list