problem in finding sizes of objects using a for loop
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.