Konvertieren von Daten-frame-Liste

Ich versuche, um zu gehen von einem Daten-frame eine Liste mit Struktur in R (und ich weiß technisch ein data frame ist eine Liste). Ich habe einen Daten-frame mit Referenz-Chemikalien und Ihre Mechanismen unterschiedliche Ziele. Zum Beispiel, östrogen ist ein östrogen-rezeptor-agonist. Was ich möchte ist, zum transformieren der Daten-frame an eine Liste, weil ich bin müde von der Eingabe etwas ähnliches wie:

refchem$chemical_id[refchem$target=="AR" & refchem$mechanism=="Agonist"]

jedes mal, wenn ich brauche, um auf die Liste der spezifischen Referenz-Chemikalien. Ich würde viel lieber den Zugriff auf die Chemikalien von:

refchem$AR$Agonist

Ich bin auf der Suche nach einer Allgemeinen Antwort, obwohl ich habe ein Vereinfachtes Beispiel, weil nicht alle Ziele sind alle Mechanismen.

Dies ist wirklich einfach zu bewerkstelligen mit einer Schleife:

example <- data.frame(target=rep(c("t1","t2","t3"),each=20),
                      mechan=rep(c("m1","m2"),each=10,3),
                      chems=paste0("chem",1:60))
oneoption <- list()
for(target in unique(example$target)){
  oneoption[[target]] <- list()
  for(mech in unique(example$mechan)){
    oneoption[[target]][[mech]] <- as.character(example$chems[ example$target==target & example$mechan==mech ])
  }
}

Ich Frage mich nur, wenn es ein cleverer Weg, es zu tun. Ich habe versucht, um das Spiel mit lapply und machte keine Fortschritte.

InformationsquelleAutor dayne | 2013-09-20

Schreibe einen Kommentar