Jak wykonywać operację agregacji z Groupby Max

Jak wykonywać operację agregacji z Groupby Max
W tym samouczku R zobaczymy, jak wykonywać operacje agregacji, grupując dane i zwracając maksymalne wartości w zgrupowanych wierszy.

Ta operacja musi zostać wykonana na ramie danych. Utwórzmy ramkę danych z siedmioma wierszami i pięcioma kolumnami.

#Utworz market DataFrame, który ma 7 wierszy i 5 kolumn.
rynek = dane.Ramka (Market_id = C (1,2,1,4,4,4,5), nazwa_kształt = C („M1”, „M2”, „M3”,
„M4”, „M3”, „M4”, „M3”), Market_place = C („India”, „USA”, „India”, „Australia”, „USA”,
„Indie”, „Australia”), Market_Type = C („Grocery”, „Bar”, „Grocery”, „Restaurate”,
„Grocer”, „Bar”, „Grocery”), Market_Squarefeet = C (120 342,220,110,342,220,110)))
#Display the Market DataFrame

Wynik

Teraz zwrócimy maksymalne wartości w kolumnie, grupując podobne wartości w innej kolumnie.

Metoda 1: agregat ()

Tutaj używamy funkcji agregate (), która przyjmuje trzy parametry.

Składnia

agregate (DataFrame_Object $ Gruped, List (DataFrame_Object $ Grouping), FUN = Max)

Parametry

  1. Pierwszy parametr przyjmuje kolumnę zmienną (zgrupowaną), która zwróci maksymalne wartości na grupę.
  2. Drugi parametr pobiera pojedynczą lub wieloma kolumnami (grupowanie) na liście tak, że wartości są zgrupowane w tych kolumnach.
  3. Trzeci parametr wymaga zabawy, co zabierze funkcję maksymalną, aby zwrócić maksymalne wartości w zgrupowanych wartościach.

Przykład 1
W tym przykładzie grupujemy wartości w kolumnie Market_place i otrzymujemy maksymalne wartości w kolumnie Market_Squarefeet zgrupowane według kolumny Market_place.

#Utworz market DataFrame, który ma 7 wierszy i 5 kolumn.
rynek = dane.Ramka (Market_id = C (1,2,1,4,4,4,5), nazwa_kształt = C („M1”, „M2”, „M3”,
„M4”, „M3”, „M4”, „M3”), Market_place = C („India”, „USA”, „India”, „Australia”, „USA”,
„Indie”, „Australia”), Market_Type = C („Grocery”, „Bar”, „Grocery”, „Restaurate”,
„Grocer”, „Bar”, „Grocery”), Market_Squarefeet = C (120 342,220,110,342,220,110)))
#Zadzwoń maksymalnie stóp kwadratowych w grupie, grupując Market_place
Drukuj (agregat (Market $ Market_Squarefeet, List (Market $ Market_place), FUN = Max))

Wynik

Widzimy, że podobne wartości (Australia, Indie i USA) w kolumnie Market_place są zgrupowane i zwracają maksymalnie zgrupowane wartości w kolumnie Market_Square Feet.

Przykład 2
W tym przykładzie grupujemy wartości w kolumnie Market_Type i otrzymujemy maksymalne wartości w kolumnie Market_Squarefeet zgrupowane według kolumny Market_Type.

#Utworz market DataFrame, który ma 7 wierszy i 5 kolumn.
rynek = dane.Ramka (Market_id = C (1,2,1,4,4,4,5), nazwa_kształt = C („M1”, „M2”, „M3”,
„M4”, „M3”, „M4”, „M3”), Market_place = C („India”, „USA”, „India”, „Australia”, „USA”,
„Indie”, „Australia”), Market_Type = C („Grocery”, „Bar”, „Grocery”, „Restaurate”,
„Grocer”, „Bar”, „Grocery”), Market_Squarefeet = C (120 342,220,110,342,220,110)))
#Zadzwoń maksimum stóp kwadratowych w grupie, grupując Market_Type
Drukuj (agregate (Market $ Market_Squarefeet, List (Market $ Market_Type), FUN = Max))

Wynik

Widzimy, że podobne wartości (bar, sklep spożywczy i restaurator) w kolumnie Market_Type są zgrupowane i zwracają maksimum zgrupowanych wartości w kolumnie Market_Square Feet.

Przykład 3
W tym przykładzie grupujemy wartości w kolumnach rynku_typu i rynku i otrzymujemy maksymalne wartości w kolumnie Market_Squarefeet zgrupowane według kolumn Market_Type i Market_place.

#Utworz market DataFrame, który ma 7 wierszy i 5 kolumn.
rynek = dane.Ramka (Market_id = C (1,2,1,4,4,4,5), nazwa_kształt = C („M1”, „M2”, „M3”,
„M4”, „M3”, „M4”, „M3”), Market_place = C („India”, „USA”, „India”, „Australia”, „USA”,
„Indie”, „Australia”), Market_Type = C („Grocery”, „Bar”, „Grocery”, „Restaurate”,
„Grocer”, „Bar”, „Grocery”), Market_Squarefeet = C (120 342,220,110,342,220,110)))
#Zadzwoń maksimum stóp kwadratowych w grupie, grupując Market_place i Market_Type
Drukuj (agregate (Market $ Market_Squarefeet, List (Market $ Market_place, Market $ Market_Type), FUN = Max)))

Wynik

Widzimy, że podobne wartości z dwóch kolumn zostały zgrupowane i zwróciły maksymalne wartości w każdej zgrupowanej wartości w kolumnie Market_Square Feet.

Metoda 2: DPLYR

Tutaj używamy grupy_by z Summarise_At (), które są dostępne w bibliotece DPLYR do wykonania grupy_by z maksymalną operacją.

Składnia

DataFrame_Object%>% grupa_by (grupowanie)%>% summarise_at (vars (zgrupowane), lista (name = max))

Gdzie:

  1. grupa_by () bierze jeden parametr, i.mi. Grupowanie kolumny
  2. summarise_at () przyjmuje dwa parametry:
  1. Pierwszy parametr przyjmuje kolumnę zmienną (zgrupowaną), która zwraca maksymalne wartości na grupę.
  2. Drugi parametr przenosi funkcję maksymalną za pośrednictwem listy.

Na koniec najpierw podsumowujemy z Maxem i ładujemy go do grupy. Następnie ładujemy zgrupowaną kolumnę do obiektu DataFrame.

Zwraca witbble.

Przykład 1
W tym przykładzie grupujemy wartości w kolumnie Market_place i otrzymujemy maksymalne wartości w kolumnie Market_Squarefeet zgrupowane według kolumny Market_place.

biblioteka („dplyr”)
#Zadzwoń maksymalnie stóp kwadratowych w grupie, grupując Market_place
Drukuj (rynek %> %grupy_by (rynkowe) %> %
summarise_at (vars (market_squarefeet), lista (name = max))))

Wynik

Widzimy, że podobne wartości (Australia, Indie i USA) w kolumnie Market_place są zgrupowane i zwracają maksimum z każdej zgrupowanej wartości w kolumnie Market_Square Feet.

Przykład 2
W tym przykładzie grupujemy wartości w kolumnie Market_Type i otrzymujemy maksymalne wartości w kolumnie Market_Squarefeet Gruped według kolumny Market_Type.

biblioteka („dplyr”)
#Zadzwoń maksimum stóp kwadratowych w grupie, grupując Market_Type
Drukuj (rynek %> %grupy_by (rynkowy) %> %
summarise_at (vars (market_squarefeet), lista (name = max))))

Wynik

Widzimy, że podobne wartości (bar, sklep spożywczy i restaurator) w kolumnie Market_Type są zgrupowane i zwracają maksymalne wartości w każdej zgrupowanej wartości w kolumnie Market_Square Feet.

Wniosek

Możliwe jest zgrupowanie pojedynczych lub wielu kolumn z innymi kolumnami liczbowymi, aby zwrócić maksymalną wartość z kolumny numerycznej za pomocą funkcji agregate (). Podobnie możemy użyć funkcji GroupBy () z funkcją summarise_at (), aby zgrupować podobne wartości w kolumnie i zwrócić maksymalne wartości z zgrupowanych wartości w odniesieniu do innej kolumny.