# Re: [R] Re-sort list of vectors

From: jim holtman <jholtman_at_gmail.com>
Date: Tue 16 Aug 2005 - 03:37:06 EST

Not that I like loops, but here is a quick and dirty way of doing it:

Result <- list()
for (i in names(x)){

for (j in names(x[[i]])){

Result[[j]][[i]] <- x[[i]][[j]]
}
}

On 8/15/05, Liaw, Andy <andy_liaw@merck.com> wrote:
> You could try using one of the sparse representations of matrices in the
> SparseM or Matrix packages. Both packages have vignettes.
>
> Andy
>
> > From: Jan Hummel
> >
> > 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
> > >
> > > 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.
> > >
> > > ______________________________________________
> > > R-help@stat.math.ethz.ch mailing list
> > > https://stat.ethz.ch/mailman/listinfo/r-help
> > > http://www.R-project.org/posting-guide.html
> > >
> > >
> > >
> >
> > ______________________________________________
> > R-help@stat.math.ethz.ch mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > http://www.R-project.org/posting-guide.html
> >
> >
> >
>
> ______________________________________________
> R-help@stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
>

```--
Jim Holtman
Convergys
+1 513 723 2929

What the problem you are trying to solve?

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help