So formen sie daten zwischen breit- und langformaten in r um


Ein Datenrahmen in R kann im Breit- oder Langformat angezeigt werden.

Abhängig von Ihrem Zweck möchten Sie möglicherweise, dass der Datenrahmen in einem dieser spezifischen Formate vorliegt.

Der einfachste Weg, Daten zwischen diesen Formaten umzuformen, besteht darin, die folgenden zwei Funktionen aus dem Tidyr- Paket in R zu verwenden:

  • Pivot_longer() : formt einen Datenblock vom Breitformat in das Langformat um.
  • Pivot_wider() : formt einen Datenblock vom Langformat in das Breitformat um.

Die folgenden Beispiele zeigen, wie die einzelnen Funktionen in der Praxis verwendet werden.

Beispiel 1: Daten von „Wide“ zu „Long“ umformen

Angenommen, wir haben den folgenden Datenrahmen in R, der derzeit im Breitformat vorliegt:

 #create data frame
df <- data. frame (player=c('A', 'B', 'C', 'D'),
                 year1=c(12, 15, 19, 19),
                 year2=c(22, 29, 18, 12))

#view data frame
df

  player year1 year2
1 to 12 22
2 B 15 29
3 C 19 18
4 D 19 12

Wir können die Funktion „pivot_longer()“ verwenden, um diesen Datenrahmen in ein langes Format zu drehen:

 library (tidyr)

#pivot the data frame into a long format
df %>% pivot_longer(cols=c(' year1 ', ' year2 '),
                    names_to=' year ',
                    values_to=' points ')

# A tibble: 8 x 3
  player year points
      
1 A year1 12
2 A year2 22
3 B year1 15
4 B year2 29
5 C year1 19
6 C year2 18
7 D year1 19
8 D year2 12

Beachten Sie, dass die Spaltennamen Jahr1 und Jahr2 jetzt als Werte in einer neuen Spalte namens „Jahr“ verwendet werden und die Werte aus diesen ursprünglichen Spalten in einer neuen Spalte namens „Punkte“ platziert werden.

Das Endergebnis ist ein langer Datenrahmen.

Hinweis : Die vollständige Dokumentation zur Funktion „pivot_longer()“ finden Sie hier .

Beispiel 2: Daten von „Lang“ in „Breit“ umformen

Angenommen, wir haben den folgenden Datenrahmen in R, der derzeit im Langformat vorliegt:

 #create data frame
df <- data. frame (player=rep(c('A', 'B'), each= 4 ),
                 year=rep(c(1, 1, 2, 2), times= 2 ),
                 stat=rep(c('points', 'assists'), times= 4 ),
                 amount=c(14, 6, 18, 7, 22, 9, 38, 4))

#view data frame
df

  player year stat amount
1 A 1 points 14
2 A 1 assists 6
3 A 2 points 18
4 A 2 assists 7
5 B 1 points 22
6 B 1 assists 9
7 B 2 points 38
8 B 2 assists 4

Wir können die Funktion „pivot_wider()“ verwenden, um diesen Datenrahmen in ein Breitformat zu drehen:

 library (tidyr)

#pivot the data frame into a wide format
df %>% pivot_wider(names_from = stat, values_from = amount)

# A tibble: 4 x 4
  player year points assists
         
1 A 1 14 6
2 A 2 18 7
3 B 1 22 9
4 B 2 38 4

Beachten Sie, dass die Werte in der Statistikspalte jetzt als Spaltennamen und die Werte in der Betragsspalte als Zellenwerte in diesen neuen Spalten verwendet werden.

Das Endergebnis ist ein großer Datenblock.

Hinweis : Die vollständige Dokumentation zur Funktion „pivot_wider()“ finden Sie hier .

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in R ausführen:

So zählen Sie eindeutige Werte nach Gruppen in R
So zählen Sie Nicht-NA-Werte in R
So erstellen Sie relative Häufigkeitstabellen in R

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert