Re: [R] Query about memory used in list and dataframe

2012-05-06 Thread Rui Barradas
Hello,

Also, note that to rbind data frames, like the op says, takes less memory
than to cbind.


x - 1:6
list.1 - list(x,x,x,x,x,x,x,x,x,x,x,x)
test.df3 - as.data.frame(do.call(cbind, list.2))
test.df4 - as.data.frame(do.call(rbind, list.2))

object.size(list.1)
object.size(test.df3)
object.size(test.df4)

(More columns == more variables == more memory.)

Rui Barradas


jholtman wrote
 
 I think you really have to show use your exact code that you did along
 with an 'str' of each intermediate data structure since my quick test
 does not bear out what you were saying:
 
 test.df - data.frame(a1= 1:6, a2= 1:6, a3 = 1:6, a4 = 1:6, a5 = 1:6, a6
 = 1:6
 + , a7=1:6, a8 = 1:6, a9 = 1:6, a10 = 1:6, a11 = 1:6, a12 = 1:6)
 test.df
   a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12
 1  1  1  1  1  1  1  1  1  1   1   1   1
 2  2  2  2  2  2  2  2  2  2   2   2   2
 3  3  3  3  3  3  3  3  3  3   3   3   3
 4  4  4  4  4  4  4  4  4  4   4   4   4
 5  5  5  5  5  5  5  5  5  5   5   5   5
 6  6  6  6  6  6  6  6  6  6   6   6   6
 object.size(test.df)
 2264 bytes
 x - 1:6
 test.df1 - data.frame(x,x,x,x,x,x,x,x,x,x,x,x)
 object.size(test.df1)
 2264 bytes
 list.1 - list(x,x,x,x,x,x,x,x,x,x,x,x)
 object.size(list.1)
 1032 bytes
 list.2 - NULL
 for (i in 1:12) list.2[[i]] - x
 object.size(list.2)
 1032 bytes
 test.df3 - as.data.frame(do.call(cbind, list.2))
 object.size(test.df3)
 2264 bytes



 
 
 On Sat, May 5, 2012 at 5:50 PM, Shivam lt;shivamsingh@gt; wrote:
 Hi,

 I had a query regarding which object, a list or a dataframe, consumes
 more
 R memory. Let me clarify this:

 For example, I have a df of 6 rows and 12 columns, say 'test'. I do
 object.size() and find it uses 3.3 KB of memory.

 I run a loop and make a list, say 'testlist', of 6 elements, each element
 being the above mentioned df 'test'. The size of this list is 19.9 KB,
 understandably.

 Now I combine this list into a dataframe using rbind. The df formed has
 12
 cols and 36 rows. The size of this df is just 5.8 KB, almost a 75%
 reduction in memory.

 I had to work with a much larger list, and I thought of using the same
 method to convert my bigger list (62 dataframes, each having 4 cols and
 close to 200,000 rows) into a single dataframe. The big list, sat LIST A,
 had a size of 571 MB. But when I convert it into a dataframe, say DF A,
 using rbind, the object size increases to 1.35 GB. This was in
 contradiction to the earlier result.

 What am I missing? Why a 75% reduction in size in one case and double
 size
 in other? Anyone with any explanation?

 Sorry for the verbose email, just wanted to make my case clear.

 Thanks in advance,
 Regards
 Shivam

        [[alternative HTML version deleted]]

 __
 R-help@ 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@ 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.
 


--
View this message in context: 
http://r.789695.n4.nabble.com/Query-about-memory-used-in-list-and-dataframe-tp4611896p4612876.html
Sent from the R help mailing list archive at Nabble.com.

__
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.


[R] Query about memory used in list and dataframe

2012-05-05 Thread Shivam
Hi,

I had a query regarding which object, a list or a dataframe, consumes more
R memory. Let me clarify this:

For example, I have a df of 6 rows and 12 columns, say 'test'. I do
object.size() and find it uses 3.3 KB of memory.

I run a loop and make a list, say 'testlist', of 6 elements, each element
being the above mentioned df 'test'. The size of this list is 19.9 KB,
understandably.

Now I combine this list into a dataframe using rbind. The df formed has 12
cols and 36 rows. The size of this df is just 5.8 KB, almost a 75%
reduction in memory.

I had to work with a much larger list, and I thought of using the same
method to convert my bigger list (62 dataframes, each having 4 cols and
close to 200,000 rows) into a single dataframe. The big list, sat LIST A,
had a size of 571 MB. But when I convert it into a dataframe, say DF A,
using rbind, the object size increases to 1.35 GB. This was in
contradiction to the earlier result.

What am I missing? Why a 75% reduction in size in one case and double size
in other? Anyone with any explanation?

Sorry for the verbose email, just wanted to make my case clear.

Thanks in advance,
Regards
Shivam

[[alternative HTML version deleted]]

__
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.


Re: [R] Query about memory used in list and dataframe

2012-05-05 Thread jim holtman
I think you really have to show use your exact code that you did along
with an 'str' of each intermediate data structure since my quick test
does not bear out what you were saying:

 test.df - data.frame(a1= 1:6, a2= 1:6, a3 = 1:6, a4 = 1:6, a5 = 1:6, a6 = 1:6
+ , a7=1:6, a8 = 1:6, a9 = 1:6, a10 = 1:6, a11 = 1:6, a12 = 1:6)
 test.df
  a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12
1  1  1  1  1  1  1  1  1  1   1   1   1
2  2  2  2  2  2  2  2  2  2   2   2   2
3  3  3  3  3  3  3  3  3  3   3   3   3
4  4  4  4  4  4  4  4  4  4   4   4   4
5  5  5  5  5  5  5  5  5  5   5   5   5
6  6  6  6  6  6  6  6  6  6   6   6   6
 object.size(test.df)
2264 bytes
 x - 1:6
 test.df1 - data.frame(x,x,x,x,x,x,x,x,x,x,x,x)
 object.size(test.df1)
2264 bytes
 list.1 - list(x,x,x,x,x,x,x,x,x,x,x,x)
 object.size(list.1)
1032 bytes
 list.2 - NULL
 for (i in 1:12) list.2[[i]] - x
 object.size(list.2)
1032 bytes
 test.df3 - as.data.frame(do.call(cbind, list.2))
 object.size(test.df3)
2264 bytes





On Sat, May 5, 2012 at 5:50 PM, Shivam shivamsi...@gmail.com wrote:
 Hi,

 I had a query regarding which object, a list or a dataframe, consumes more
 R memory. Let me clarify this:

 For example, I have a df of 6 rows and 12 columns, say 'test'. I do
 object.size() and find it uses 3.3 KB of memory.

 I run a loop and make a list, say 'testlist', of 6 elements, each element
 being the above mentioned df 'test'. The size of this list is 19.9 KB,
 understandably.

 Now I combine this list into a dataframe using rbind. The df formed has 12
 cols and 36 rows. The size of this df is just 5.8 KB, almost a 75%
 reduction in memory.

 I had to work with a much larger list, and I thought of using the same
 method to convert my bigger list (62 dataframes, each having 4 cols and
 close to 200,000 rows) into a single dataframe. The big list, sat LIST A,
 had a size of 571 MB. But when I convert it into a dataframe, say DF A,
 using rbind, the object size increases to 1.35 GB. This was in
 contradiction to the earlier result.

 What am I missing? Why a 75% reduction in size in one case and double size
 in other? Anyone with any explanation?

 Sorry for the verbose email, just wanted to make my case clear.

 Thanks in advance,
 Regards
 Shivam

        [[alternative HTML version deleted]]

 __
 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.



-- 
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@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.