[R] flatten lists

Jeroen Ooms jeroen.ooms at stat.ucla.edu
Wed Jun 27 00:55:47 CEST 2012


Alright, but I need something recursive for lists with arbitrary deepness.



On Tue, Jun 26, 2012 at 3:37 PM, arun <smartpink111 at yahoo.com> wrote:
> Hi,
>
> Try:
>
> do.call("c",do.call("c",x))
>
> x1<-do.call("c",do.call("c",x))
>  x2<-flatlist(x)
>  identical(x1,x2)
> [1] TRUE
>
>
>
> A.K.
>
>
>
> ----- Original Message -----
> From: Jeroen Ooms <jeroen.ooms at stat.ucla.edu>
> To: Neal Fultz <nfultz at gmail.com>
> Cc: r-help at r-project.org
> Sent: Tuesday, June 26, 2012 6:23 PM
> Subject: Re: [R] flatten lists
>
> Hmm that doesn't seem to work if the original list is nested more than
> 2 levels deep. I should have probably given a better example:
>
> x <- list(name="Jeroen", age=27, married=FALSE,
> home=list(country=list(name="Netherlands", short="NL"), city="Utrecht"))
>
>
>
>
> On Tue, Jun 26, 2012 at 3:04 PM, Neal Fultz <nfultz at gmail.com> wrote:
>> do.call("c", x)
>>
>> maybe?
>>
>> On Tue, Jun 26, 2012 at 02:25:40PM -0700, Jeroen Ooms wrote:
>>> I am looking for a function to flatten a list to a list of only 1
>>> level deep. Very similar to unlist, however I don't want to turn it
>>> into a vector because then everything will be casted to character
>>> vectors:
>>>
>>> x <- list(name="Jeroen", age=27, married=FALSE,
>>> home=list(country="Netherlands", city="Utrecht"))
>>> unlist(x)
>>>
>>> This function sort of does it:
>>>
>>> flatlist <- function(mylist){
>>>   lapply(rapply(mylist, enquote, how="unlist"), eval)
>>> }
>>>
>>> flatlist(x)
>>>
>>> However it is a bit slow. Is there a more native way?
>>>
>>> ______________________________________________
>>> 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.
>
> ______________________________________________
> 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.
>



More information about the R-help mailing list