konvertiert eine Matrix in eine Liste

8

Angenommen, ich habe eine Matrix foo wie folgt:

%Vor%

Ich möchte es in eine Liste verwandeln, die aussieht wie

%Vor%

Sie können es wie folgt tun:

lapply(apply(foo, 1, function(x) list(c(x[1], x[2]))), function(y) unlist(y))

Ich bin an einer alternativen Methode interessiert, die nicht so kompliziert ist. Beachte, wenn du nur apply(foo, 1, function(x) list(c(x[1], x[2]))) machst, gibt es eine Liste in einer Liste, die ich vermeiden möchte.

    
andrewj 18.03.2010, 15:45
quelle

2 Antworten

15

Hier ist eine sauberere Lösung:

%Vor%

Das nutzt die Tatsache aus, dass ein Datenrahmen wirklich nur eine Liste von Vektoren gleicher Länge ist (während eine Matrix wirklich ein Vektor ist, der mit Spalten und Zeilen angezeigt wird ... Sie können dies sehen, indem Sie foo [5] aufrufen. zum Beispiel).

Sie könnten das auch tun, obwohl es keine große Verbesserung ist:

%Vor%     
Shane 18.03.2010, 15:52
quelle
6
%Vor%     
hadley 18.03.2010 19:48
quelle

Tags und Links