From: Dimitris Rizopoulos <dimitris.rizopoulos_at_med.kuleuven.be>

Date: Tue 16 Aug 2005 - 19:45:27 EST

y <- data.frame(nam = rep(names(x), sapply(x, length)), val = unlist(x))

lapply(split(y, unlist(lapply(x, names))), function(x){ res <- x$val; names(res) <- x$nam; res })

Dimitris Rizopoulos

Ph.D. Student

Biostatistical Centre

School of Public Health

Catholic University of Leuven

*> Hi.
*

> Can anyone suggest a simple way to re-sort in R a list of vectors of

*> the following form?
*

*> input
*

*> $"1"
*

*> a b c
*

> 1 2 3

*> $"2"
*

*> a b c
*

*> 4 5 6
*

> Output should be something like:

*> "a"
*

*> "1" 1
*

*> "2" 4
*

*> "b"
*

*> "1" 2
*

*> "2" 5
*

*> "c"
*

*> "1" 3
*

*> "2" 6
*

> I've been futzing with mapply(), outer(), split(), rbind() and so on

*> but haven't found an elegant solution.
*

> Thanks,

*> Jan.
*

> P.S. E-mailed CCs of posted replies appreciated.

*> https://stat.ethz.ch/mailman/listinfo/r-help
*

*> PLEASE do read the posting guide!
*

*> http://www.R-project.org/posting-guide.html
*

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide!

http://www.R-project.org/posting-guide.html

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Tue Aug 16 19:55:58 2005

Date: Tue 16 Aug 2005 - 19:45:27 EST

maybe something like this can be helpful:

x <- list("1" = c(a = 1, b = 2, c = 3), "2" = c(d = 4, b = 5, e = 6))

################

y <- data.frame(nam = rep(names(x), sapply(x, length)), val = unlist(x))

lapply(split(y, unlist(lapply(x, names))), function(x){ res <- x$val; names(res) <- x$nam; res })

Best,

Dimitris

Dimitris Rizopoulos

Ph.D. Student

Biostatistical Centre

School of Public Health

Catholic University of Leuven

Address: Kapucijnenvoer 35, Leuven, Belgium

Tel: +32/16/336899 Fax: +32/16/337015 Web: http://www.med.kuleuven.be/biostat/ http://www.student.kuleuven.be/~m0390867/dimitris.htm

- Original Message ----- From: "Jan Hummel" <Hummel@mpimp-golm.mpg.de> To: <r-help@stat.math.ethz.ch> Sent: Monday, August 15, 2005 7:09 PM Subject: Re: [R] Re-sort list of vectors

Thanks a lot! But unfortunately I will not know the dimensions of both lists. And further, the lists may be (partly) disjoint as: x <- list("1"=c(a=1, b=2, c=3), "2"=c(d=4, b=5, e=6)). And last but not least I'm really have to have access to the names of the named list items.

The problem I dealt with is in unlist() merging the names together, as you can see in your example given: "V1", "V2" and "V3". Because off interpreting the names later as identifiers in db queries I'm really interested in getting something like list("a"=c("1"=1), "b"=c("1"=2, "2"=5), "c"=c("1"=3), "d"=c("1"=4), "e"=c("1"=6)) for the above input. By giving the result this way I'm able to extract both names from two sets as well as the according value between both items.

One point could be to build a matrix but this matrix would have many NA's. So I prefer Lists of Lists.

Any ideas?

cheers

Jan

-----Ursprüngliche Nachricht-----

Von: Liaw, Andy [mailto:andy_liaw@merck.com]
Gesendet: Montag, 15. August 2005 17:31

An: Jan Hummel; r-help@stat.math.ethz.ch
Betreff: RE: [R] Re-sort list of vectors

If all vectors in the list have the same length, why not use a matrix? Then you'd just transpose the matrix if you need to. If you really have to have it as a list, here's one possibility:

> x <- list("1"=c(a=1, b=2, c=3), "2"=c(a=4, b=5, c=6)) x

$"1"

a b c

1 2 3

$"2"

a b c

4 5 6

> as.list(as.data.frame(t(matrix(unlist(x), nrow=3))))

$V1

[1] 1 4

$V2

[1] 2 5

$V3

[1] 3 6

Andy

> From: Jan Hummel

>

> Can anyone suggest a simple way to re-sort in R a list of vectors of

>

> 1 2 3

>

> Output should be something like:

>

> I've been futzing with mapply(), outer(), split(), rbind() and so on

>

> Thanks,

>

> P.S. E-mailed CCs of posted replies appreciated.

>> R-help@stat.math.ethz.ch mailing list

> ______________________________________________

> > > ______________________________________________R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide!

http://www.R-project.org/posting-guide.html

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Tue Aug 16 19:55:58 2005

*
This archive was generated by hypermail 2.1.8
: Sun 23 Oct 2005 - 15:22:51 EST
*