Jak korzystać z funkcji melt() w r


Możesz użyć funkcji Melt() pakietu reshape2 w R, aby przekonwertować ramkę danych z formatu szerokiego na format długi.

Szeroki format zawiera wartości, które nie powtarzają się w pierwszej kolumnie.

Długi format zawiera wartości, które powtarzają się w pierwszej kolumnie.

Rozważmy na przykład następujące dwa zbiory danych, które zawierają dokładnie te same dane wyrażone w różnych formatach:

Szeroki lub długi format danych

Funkcja Melt() wykorzystuje następującą podstawową składnię do konwersji ramki danych w szerokim formacie na format długi:

 melt(df, id=' team ')

Argument id określa, jakiej zmiennej użyć jako pierwszej kolumny ramki danych, której wartości będą się powtarzać.

Poniższy przykład pokazuje, jak w praktyce wykorzystać tę funkcję.

Przykład: Jak używać metody Melt() w R

Załóżmy, że mamy następującą ramkę danych w R, która jest obecnie w szerokim formacie:

 #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

Możemy użyć funkcji Melt() , aby szybko przekonwertować ramkę danych na długi format:

 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

Należy pamiętać, że ramka danych ma teraz długi format.

Kolumny punktów , asyst i zbiórek zostały skompresowane w jedną kolumnę zwaną zmienną , a ich wartości zostały skompresowane w jedną kolumnę zwaną wartościami .

Możesz dowolnie zmieniać nazwy kolumn wynikowej ramki danych za pomocą funkcji Names() :

 #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

Zwróć uwagę, że nazwy kolumn zostały zmienione.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w języku R:

Jak filtrować wiersze w R
Jak transponować ramkę danych do R
Jak zmienić nazwę kolumn ramki danych w R

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *