Wenn es eine Liste von ungleicher Anzahl von Zeilenvektoren ist (alle Vektoren haben 3 Spalten) wie unten:R-Gibt es eine Möglichkeit Liste mit variabler Anzahl von Zeilen zu einem Datenrahmen zu kombinieren
>typicalList
[[1]]
col1 col2 col3
1 12 10 ABC
2 54 87 DEF
[[2]]
col1 col2 col3
1 64 9 GHI
2 59 6 JKL
3 43 4 PST
Sind es möglich, einen Datenrahmen aus der obigen Liste mit einer neuen Spalte newColumn
genannt zu haben, die unten wie folgt aussieht:
newColumn col1 col2 col3
1 12 10 ABC
1 54 87 DEF
2 64 9 GHI
2 59 6 JKL
2 43 4 PST
ldply(typicallist,rbind)
Gebrauchte aber das spaltet alle Zeilen in der ursprünglichen Liste zu einem Vektor gehören, 5 unabhängige Datensätze in der Angabe Datenrahmen. Ist es möglich, den Datenrahmen wie oben zu haben, der (durch newColumn
) Feld vorschlägt, dass zuerst zwei Aufzeichnungen vom ersten Vektor der Liste und die restlichen drei vom zweiten abgeleitet werden? Gibt es einen besseren Weg, dies in R zu realisieren?
Daten
typicalList <- list(structure(list(col1 = c(12L, 54L), col2 = c(10L, 87L), col3 = c("ABC",
"DEF")), .Names = c("col1", "col2", "col3"), class = "data.frame", row.names = c("1",
"2")), structure(list(col1 = c(64L, 59L, 43L), col2 = c(9L, 6L,
4L), col3 = c("GHI", "JKL", "PST")), .Names = c("col1", "col2",
"col3"), class = "data.frame", row.names = c("1", "2", "3")))
'do.call ('rbind', Map (Funktion (x, y)) {x $ newColumn <- y; x}, typicalList, seq (typicalList))) ' – rawr