tidyr :: versammeln vs. reshape2 :: schmelzen auf Matrizen

8

Ich war lange Zeit Benutzer von reshape2::melt auf nicht-standardmäßige Weise: Ich führe numerische Experimente durch und erhalte eine Matrix als Ergebnis. Ich schmelze es dann und produziere einige Bilder.

Inspiriert von der Ähnlichkeit zwischen reshape2 und tidyr , Ich versuche jetzt, identische Ausgabe auf Objekten der Klassenmatrix zu erreichen. Bisher kein Glück:

%Vor%

Beachten Sie, dass melt intelligent ist und dimnames behält, wenn sie vorhanden sind. Ich habe gelernt wie es funktioniert , also kann ich dem Methodenversand möglicherweise die folgende Funktion hinzufügen:

%Vor%

Aber die Frage ist, kann ich gather act auf die gleiche Weise wie melt in meinem Fall erzwingen? Gibt es eine Kombination von Parametern, die die gewünschte Ausgabe in mat und mat2 erzeugen würden?

    
tonytonov 03.04.2015, 09:20
quelle

1 Antwort

11

Vielleicht wird es eine bessere Antwort geben, aber in der Zwischenzeit werde ich meine Kommentare in eine Antwort umwandeln:

Zitat aus der README zu "tidyr":

  

Beachten Sie, dass tidyr für die Verwendung in Verbindung mit dplyr gedacht ist. Daher sollten Sie beide immer laden.

... und von der README zu "dplyr":

  

dplyr ist die nächste Iteration von plyr, fokussiert auf Werkzeuge zum Arbeiten mit Datenrahmen (daher der d im Namen).

Als solche macht es sort Sinn, keine Methoden für Matrizen zu haben.

Da gather bereits melt umschließt, wenn Sie wirklich eine matrix -Methode verwenden möchten, können Sie sich beim Schreiben einer benutzerdefinierten Funktion sparen und einfach so etwas tun:

%Vor%     
A5C1D2H2I1M1N2O1R2T1 03.04.2015, 10:44
quelle

Tags und Links