Konvertieren-Liste, um Daten-Frames, während list-element-Namen
Ich haben Liste, wo die elementnames sind ID-tags und enthält ein Vektor mit numerischen Werten. Diese sind von ungleichen(!) Länge.
Möchte ich, um es zu transformieren, um einen Daten-frame, wo ich die ID in einer Spalte und die numerischen Werte in einer anderen Spalte. E. g.:
$`1`
[1] 1 2
$`2`
[1] 1 2 3
$`3`
[1] 1
Zu:
ID Obs
1 1
1 2
2 1
2 2
2 3
3 1
InformationsquelleAutor ego_ | 2012-09-28
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist eine Möglichkeit:
Gibt es:
Die erste Zeile in der
data.frame()
nennen, ist nur wenig code zu wiederholen, dienames()
von der Liste die erforderliche Anzahl von Zeiten. Die zweite Zeile nur unlists der Liste die Umwandlung in einen Vektor.Verwenden
reshape2
undmelt
hat eine Methodemelt.list
Einen guten und noch fehlende alternative zu den bereits geposteten Lösungen ist die
stack
-Funktion:gibt:
Mit
setNames
wie gut können Sie die genaue gewünschte format:gibt:
Verwendete Daten:
Lösung mit den Basis-Funktionen
Wenn Sie möchten, dass die
rownames
werden 1,2,3,4,5,6 die versuchen, diese (mitsetNames
):Diese Lösung ist nur gültig, wenn alle Namen, die gleiche Länge haben, sonst werde scheitern, und es wäre besser, verwenden Gavin Lösung. Siehe zum Beispiel:
x <- unlist(List)
können Sie nicht?