Dear Purna,

You need the get() function around object[i] in order to accomplish the
same results:

# data
x<-rnorm(10000)
y<-runif(100,min=40,max=1000)

# sizes
objects<-ls()
for (i in seq_along(objects)){
   print(c(objects[i],object.size(get(objects[i]))))  # get() is added here
 }
[1] "x"     "80040"
[1] "y"   "840"

get() is needed because each element of "objects" is a character and the
object.size() function does not operates on characters, but on objects (not
your variable, the definition in R).  See ?get and ?object.size for more
information.

HTH,
Jorge.-


On Thu, Oct 25, 2012 at 5:24 PM, Purna chander <> 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@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.
>

	[[alternative HTML version deleted]]


