problem in finding sizes of objects using a for loop
Hi
I am not sure where I get it from, but this one gives some more info then size
ls.objects
function (pos = 1, pattern, order.by)
{
napply <- function(names, fn) sapply(names, function(x) fn(get(x,
pos = pos)))
names <- ls(pos = pos, pattern = pattern)
obj.class <- napply(names, function(x) as.character(class(x))[1])
obj.mode <- napply(names, mode)
obj.type <- ifelse(is.na(obj.class), obj.mode, obj.class)
obj.size <- napply(names, object.size)
obj.dim <- t(napply(names, function(x) as.numeric(dim(x))[1:2]))
vec <- is.na(obj.dim)[, 1] & (obj.type != "function")
obj.dim[vec, 1] <- napply(names, length)[vec]
out <- data.frame(obj.type, obj.size, obj.dim)
names(out) <- c("Type", "Size", "Rows", "Columns")
if (!missing(order.by))
out <- out[order(out[[order.by]]), ]
out
}
ls.objects()
Type Size Rows Columns a_vec numeric 824 100 NA aaglo data.frame 3944 50 7 ad data.frame 2072 24 4 airquality data.frame 5024 153 6 alice data.frame 7584 14 33 alp data.frame 6080 35 12 alp.v nfnGroupedData 6136 20 12 Regards Petr
-----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:
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
______________________________________________ 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.