2016-04-08 24 views
1

Ich habe eine Liste von Listen (mydata $ notes), aus denen ich Daten extrahieren möchte. Code sieht so aus, wenn ich "location" extrahieren möchte - das funktioniert einwandfrei.Daten aus der Liste der Listen extrahieren [R]

location <- unlist (lapply(mydata$notes, function(e) e$location)) 

Nun, ich könnte mehr Variablen ich extrahieren will, muss sagen, ein Vektor von 20, "Standort", "var1", "var2", "var3" und so weiter, in einem Atom Vektor

names(unlist(mytree$notes[[1]])) 

Wie kann ich meinen ersten Code zum Extrahieren aller in dieser Variablen enthaltenen Variablen kopieren?

Prost

Antwort

0

Definieren Sie einen Vektor, der die Listenelemente zu halten, die Sie extrahieren möchten. Dann rufen Sie unlist() auf jeder Liste, die von Ihrem Anruf verarbeitet wird, an lapply().

vars <- c("location", "var1", "var2", "var3") 

location <- unlist (lapply(mydata$notes, 
          function(e) { 
           unlist(e[vars]) 
          })) 

Beachten Sie, dass die einzige wirkliche Änderung, die ich gemacht ist, dass anstelle der Atomvektor der Rückkehr e$location ich stattdessen einen Vektor Rückkehr von mehreren bestehend kollabiert Elemente aus jeder Liste.

+0

Danke! Aber jetzt ist meine Variable "location" ein Zeichen. Ich möchte entweder eine Matrix oder einen Datenrahmen mit den in "vars" angegebenen Elementen zurückgeben. Wie mache ich das? –

+0

Bitte lesen Sie [diese SO-Post] (http://stackoverflow.com/questions/4227223/r-list-to-data-frame) für wie dies zu tun ist. –