On 12-05-12 10:06 PM, Jack Tanner wrote:> This version of my code makes the R process consume unreasonable amounts of
RAM:
>
> datf<- rbind(lapply(mylist, function(item) {
> with(item, data.frame(col1, col2, col3))
> }))
>
> This version works fine:
>
> datf<- lapply(mylist, function(item) {
> with(item, data.frame(col1, col2, col3))
> })
> datf<- do.call(rbind, datf)
>
> Is this to be expected?
They are different, so I'd expect differences:
> x <- list(data.frame(a=1), data.frame(a=2),data.frame(a=3))
> rbind(x)
[,1] [,2] [,3]
x List,1 List,1 List,1
> do.call(rbind, x)
a
1 1
2 2
3 3
The first doesn't really make sense, so the fact that it takes a lot of
memory may be R trying too hard to do something sensible.
Duncan Murdoch