2013-06-18 25 views
20

Ich habe einige Listen innerhalb einer Liste erstellt und möchte, dass jedes Unterlistenelement ein einzelnes Element auf der obersten Ebene sein kann.R So entfernen Sie eine Liste von Listen aus einer Liste von Listen

Zum Beispiel einige Dummy-Daten zu erstellen:

pp <- lapply(10:15,function(y){ 
    lapply(10:20,function(z){ 
     as.data.frame(matrix(rnorm(z*y),nrow=z,ncol=y)) 
    }) 
}) 

Dies erzeugt die folgende Ausgabe

> summary(pp) 
    Length Class Mode 
[1,] 11  -none- list 
[2,] 11  -none- list 
[3,] 11  -none- list 
[4,] 11  -none- list 
[5,] 11  -none- list 
[6,] 11  -none- list 

, wo Sie auch

> summary(pp[[1]]) 
     Length Class  Mode 
[1,] 10  data.frame list 
[2,] 10  data.frame list 
[3,] 10  data.frame list 
[4,] 10  data.frame list 
[5,] 10  data.frame list 
[6,] 10  data.frame list 
[7,] 10  data.frame list 
[8,] 10  data.frame list 
[9,] 10  data.frame list 
[10,] 10  data.frame list 
[11,] 10  data.frame list 

Die resultierende Ausgabe ein tun kann nur schaffen würde Neue Liste, die etwas wie folgt hat:

new.pp[[1]] <- pp[[1]][[1]] 
new.pp[[2]] <- pp[[1]][[2]] 

aber frage mich, ob es eine kluge oder effizientere Methode war nur eine Ebene der Listen zu entfernen, wenn Sie Listen innerhalb von Listen haben ....

ideal für das, was ich suche, ist eine Art von Funktion das führt das für mich aus, so dass ich, wenn ich zum Beispiel mehrere Listenebenen ineinander verschachtelt hätte, anstatt nur zwei, die Funktion auf jeder Ebene rekursiv verwenden kann, um jedes Element an die Spitze der Liste zu bringen. ..

+0

+1 für reproduzierbare Beispiel, würde ich nur sagen, machen Sie die Beispieldaten ein bisschen kleiner nächstes Mal! :-) –

+0

@ SimonO101 haha.yeh ... ich tat ursprünglich..aber dachte ... diese Liste sieht ein bisschen klein und sinnlos aus ... bis zu dem Punkt, dass Leute sich fragen könnten, warum ich die Frage stelle ... –

Antwort

22

Ich denke, das macht den Trick

new.pp <- unlist(pp,recursive=FALSE) 
+0

Ah, ich habe das nicht als ein Argument der Unlist gesehen ... –

Verwandte Themen