Ich möchte eine allgemeine Lösung für ein bestimmtes Problem haben. Ich habe eine verschachtelte Liste; Jedes Element dieser Liste ist eine Liste mit benannten Elementen. Zum Beispiel:verketten Vektoren aus einer Liste von Listen
mylist <- list(
list(x1 = 1:10, x2 = letters[1:5]),
list(x1 = 11:14, x2 = letters[6:15])
)
hier mylist[[1]]
und mylist[[2]]
jeweils Vektoren x1
und x2
.
ich alle x1
Vektoren und x2
Vektoren verketten möchten, wie zu erhalten:
c(mylist[[1]]$x1, mylist[[2]]$x1)
c(mylist[[1]]$x2, mylist[[2]]$x2)
aber für einen allgemeinen Fall, in dem mylist
n
Elemente haben könnte.
Wenn ich von vornherein wusste, dass mylist
nur zwei Elemente hat, dann könnte ich
do.call(function(a,b) c(a$x1, b$x1), mylist)
do.call(function(a,b) c(a$x2, b$x2), mylist)
benutzen, aber ich weiß nicht, wie dies für n
Elemente zu verallgemeinern.
Siehe '.mapply' -' .mapply (c, mylist, NULL) 'oder die bequemere Schnittstelle'? do.call (Karte, c (c, mylist)) ' –