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:
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