R melt() und cast() Funktionen – Data Reshaping Guide

Hallo, liebe Leser! In diesem Artikel werden wir uns ein wichtiges Konzept der R-Programmierung ansehen – das Umformen von Daten mit den R-Funktionen melt() und cast(), im Detail.

Lassen Sie uns beide Funktionen im Detail verstehen. Los geht’s!

R melt() Funktion

Die melt()-Funktion in der R-Programmierung ist eine integrierte Funktion. Sie ermöglicht es uns, Datenrahmen in einer benutzerdefinierten Art und Weise umzuformen und zu verlängern. Sie organisiert die Datenwerte in einem langen Datenrahmenformat.

Werfen Sie einen Blick auf die folgende Syntax!

Syntax:

melt(data-frame, na.rm = FALSE, value.name = “name”, id = 'columns')

Wir übergeben den Datenrahmen an die Funktion zusammen mit na.rm = FALSE als Standardwert, was bedeutet, dass die NA-Werte nicht ignoriert werden.

Weiterhin übergeben wir den neuen Variablen-/Spaltennamen an den Parameter value.name, um die verlängerten Werte, die aus der Funktion erhalten werden, darin zu speichern.

Der ID-Parameter wird auf die Spaltennamen des Datenrahmens gesetzt, in Bezug auf die das Umformen stattfinden wird.

Beispiel:

rm(list = ls())

install.packages("MASS") 
install.packages("reshape2") 
install.packages("reshape") 

library(MASS) 
library(reshape2) 
library(reshape) 

 
A <- c(1,2,3,4,2,3,4,1) 
B <- c(1,2,3,4,2,3,4,1) 
a <- c(10,20,30,40,50,60,70,80) 
b <- c(100,200,300,400,500,600,700,800) 
data <- data.frame(A,B,a,b) 

print("Original data frame:\n") 
print(data) 

melt_data <- melt(data, id = c("A","B")) 

print("Reshaped data frame:\n") 
print(melt_data) 

Output:

[1] "Original data frame:\n"
  A B  a   b
1 1 1 10 100
2 2 2 20 200
3 3 3 30 300
4 4 4 40 400
5 2 2 50 500
6 3 3 60 600
7 4 4 70 700
8 1 1 80 800

[1] "Reshaped data frame:\n"
> print(melt_data) 
   A B variable value
1  1 1        a    10
2  2 2        a    20
3  3 3        a    30
4  4 4        a    40
5  2 2        a    50
6  3 3        a    60
7  4 4        a    70
8  1 1        a    80
9  1 1        b   100
10 2 2        b   200
11 3 3        b   300
12 4 4        b   400
13 2 2        b   500
14 3 3        b   600
15 4 4        b   700
16 1 1        b   800

R cast() Funktion

Wie oben gesehen, wird der Datenrahmen nach Anwendung der melt()-Funktion in einen verlängerten Datenrahmen umgewandelt. Um die fast ursprüngliche und natürliche Form des Datenrahmens wiederzugewinnen, wird die R cast()-Funktion verwendet.

Die cast()-Funktion akzeptiert eine aggregierte Funktion und eine Formel als Parameter (hier ist die Formel die Art und Weise, wie die Daten nach dem Umformen dargestellt werden sollen) und wandelt den verlängerten oder geschmolzenen Datenrahmen in eine fast aggregierte Form des Datenrahmens um.

Syntax:

cast(data, formula, aggregate function)

Wir können der cast()-Funktion jede verfügbare aggregierte Funktion wie Mittelwert, Summe usw. übergeben.

Beispiel:

rm(list = ls())

library(MASS) 
library(reshape2) 
library(reshape) 

A <- c(1,2,3,4,2,3,4,1) 
B <- c(1,2,3,4,2,3,4,1) 
a <- c(10,20,30,40,50,60,70,80) 
b <- c(100,200,300,400,500,600,700,800) 
data <- data.frame(A,B,a,b) 

print("Original data frame:\n") 
print(data) 

melt_data <- melt(data, id = c("A")) 

print("Reshaped data frame after melting:\n") 
print(melt_data)

cast_data = cast(melt_data, A~variable, mean) 

print("Reshaped data frame after casting:\n") 
print(cast_data)

Output:

[1] "Original data frame:\n"
  A B  a   b
1 1 1 10 100
2 2 2 20 200
3 3 3 30 300
4 4 4 40 400
5 2 2 50 500
6 3 3 60 600
7 4 4 70 700
8 1 1 80 800

[1] "Reshaped data frame after melting:\n"
   A variable value
1  1        B     1
2  2        B     2
3  3        B     3
4  4        B     4
5  2        B     2
6  3        B     3
7  4        B     4
8  1        B     1
9  1        a    10
10 2        a    20
11 3        a    30
12 4        a    40
13 2        a    50
14 3        a    60
15 4        a    70
16 1        a    80
17 1        b   100
18 2        b   200
19 3        b   300
20 4        b   400
21 2        b   500
22 3        b   600
23 4        b   700
24 1        b   800

[1] "Reshaped data frame after casting:\n"
  A B  a   b
1 1 1 45 450
2 2 2 35 350
3 3 3 45 450
4 4 4 55 550

Schlussfolgerung

Damit sind wir am Ende dieses Themas angelangt. R melt() und cast() Funktionen – Data Reshaping Guide

Kostenlosen Account erstellen

Registrieren Sie sich jetzt und erhalten Sie Zugang zu unseren Cloud Produkten.

Das könnte Sie auch interessieren: