So verwenden sie die funktion „melt()“ in r
Sie können die Funktion „melt()“ des Pakets „reshape2 “ in R verwenden, um einen Datenrahmen von einem Breitformat in ein Langformat zu konvertieren.
Ein breites Format enthält Werte, die sich in der ersten Spalte nicht wiederholen.
Ein Langformat enthält Werte, die sich in der ersten Spalte wiederholen .
Betrachten Sie beispielsweise die folgenden zwei Datensätze, die genau dieselben Daten in unterschiedlichen Formaten enthalten:
Die Funktion „melt()“ verwendet die folgende grundlegende Syntax, um einen Datenrahmen im Breitformat in das Langformat zu konvertieren:
melt(df, id=' team ')
Das Argument id gibt an, welche Variable als erste Spalte des Datenrahmens verwendet werden soll, deren Werte wiederholt werden.
Das folgende Beispiel zeigt, wie Sie diese Funktion in der Praxis nutzen können.
Beispiel: Verwendung von Melt() in R
Angenommen, wir haben den folgenden Datenrahmen in R, der derzeit im Breitformat vorliegt:
#create data frame in wide format df <- data. frame (team=c('A', 'B', 'C', 'D'), dots=c(88, 91, 99, 94), assists=c(12, 17, 24, 28), rebounds=c(22, 28, 30, 31)) #view data frame df team points assists rebounds 1 A 88 12 22 2 B 91 17 28 3 C 99 24 30 4 D 94 28 31
Mit der Funktion „melt()“ können wir den Datenrahmen schnell in ein Langformat konvertieren:
library (reshape2) #use melt() to convert data frame from wide to long format long_df <- melt(df, id=' team ') #view long data frame long_df team variable value 1 A points 88 2 B points 91 3 C points 99 4 D points 94 5 A assists 12 6 B assists 17 7 C assists 24 8 D assists 28 9 A rebounds 22 10 B rebounds 28 11 C rebounds 30 12 D rebounds 31
Beachten Sie, dass der Datenrahmen jetzt ein langes Format hat.
Die Punkte- , Assists- und Rebounds -Spalten wurden alle in einer einzigen Spalte namens Variable komprimiert, während ihre Werte alle in einer einzigen Spalte namens Werte komprimiert wurden.
Fühlen Sie sich frei, die Spalten des resultierenden Datenrahmens mit der Funktion „names()“ umzubenennen:
#rename columns in long_df names(long_df) <- c(' team ', ' metric ', ' amount ') #view updated data frame long_df team metric amount 1 A points 88 2 B points 91 3 C points 99 4 D points 94 5 A assists 12 6 B assists 17 7 C assists 24 8 D assists 28 9 A rebounds 22 10 B rebounds 28 11 C rebounds 30 12 D rebounds 31
Beachten Sie, dass die Spalten umbenannt wurden.
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in R ausführen:
So filtern Sie Zeilen in R
So transponieren Sie einen Datenrahmen in R
So benennen Sie Datenrahmenspalten in R um