Benannte Liste To / From Data.Frame
Ich bin auf der Suche nach einem schnellen Weg, um hin und her zwischen einer Liste mit dem folgenden format:
$`a`
[1] 1 2 3
$`b`
[1] 4 5 6
zu/von einem Daten.Rahmen der folgenden Form:
name x
1 a 1
2 a 2
3 a 3
4 b 4
5 b 5
6 b 6
(Nicht wirklich kümmert, was die Namen der Spalten, in diesem Fall).
Hier ist die Daten-Frames verwendet, die oben im R-format:
df <- data.frame(name=c(rep("a",3),rep("b",3)), x=c(1:3,4:6))
Wieder, ich bin auf der Suche nach zwei getrennte Vorgänge: eine zum konvertieren der oben genannten Daten.Rahmen zu einer Liste, und ein anderes zu konvertieren zurück zu einem Daten.frame.
InformationsquelleAutor der Frage Jeff Allen | 2012-05-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
stack
undunstack
in base-R:Verwenden
stack
von Breite zu groß, also stapeln Sie die Vektoren übereinander.Verwenden
unstack
zu tun das Gegenteil.Wenn Sie Ihre Daten-Struktur ist komplizierter als du beschrieben hast,
stack
undunstack
möglicherweise nicht mehr geeignet. In diesem Fall müssen Sie diereshape
in Basis-f odermelt
unddcast
im Paketreshape2
.InformationsquelleAutor der Antwort Andrie
Vielleicht so etwas wie:
EDIT: ich beschlossen, kombinieren Andrie und ich die Lösung in eine, die anscheinend genau, was die OP gefragt, für ziemlich einfach. Dass gesagt wird, ich verstehe nicht ganz, eine situation, wo ich behandeln würde, die Daten auf diese Weise statt, wie Andrie hat es da ein data frame ist eine Liste von Vektoren gleicher Länge sowieso.
InformationsquelleAutor der Antwort Tyler Rinker
Möchte ich, dass das hoffentlich nicht-triviale Bemerkung, die @Tyler Rinker Vorschlag
getan werden kann, generell mit
@Tyler Rinker split() Erklärung entspricht der R-Kochbuch
http://my.safaribooksonline.com/book/programming/r/9780596809287/6dot1dot-splitting-a-vector-into-groups/id3392005
angeben, dass ein Vektor gruppiert werden können, während in der Tat die gesamte dataframe gruppiert werden können. Ich würde denken, dass die Gruppierung der dataframe, nicht den Vektor, der wäre wertvoller (und in der Tat, was brachte mich zu diesem post).
HTH.
InformationsquelleAutor der Antwort Jack Ryan