Hvordan utføre aggregeringsoperasjon med Groupby Max

Hvordan utføre aggregeringsoperasjon med Groupby Max
I denne R -opplæringen vil vi se hvordan vi skal utføre aggregeringsoperasjoner ved å gruppere dataene og returnere maksimale verdier i de grupperte radene.

Denne operasjonen må utføres på en dataaframe. La oss opprette DataFrame med syv rader og fem kolonner.

#Create et dataaframmarked som har 7 rader og 5 kolonner.
Markeds = data.Ramme (Market_id = C (1,2,1,4,3,4,5), Market_name = C ('M1', 'M2', 'M3',
'M4', 'M3', 'M4', 'M3'), Market_place = C ('India', 'USA', 'India', 'Australia', 'USA',
'India', 'Australia'), Market_Type = C ('Grocery', 'Bar', 'Grocery', 'Restainent',
'dagligvare', 'Bar', 'dagligvare'), Market_SquareFeet = C (120,342,220,110,342,220,110)))
#Display The Market DataFrame

Resultat

Nå vil vi returnere maksimale verdier i en kolonne ved å gruppere de lignende verdiene i en annen kolonne.

Metode 1: Aggregat ()

Her bruker vi aggregatfunksjonen () som tar de tre parametrene.

Syntaks

Aggregate (DataFrame_Object $ gruppert, liste (DataFrame_Object $ gruppering), moro = maks)

Parametere

  1. Den første parameteren tar variabelen (gruppert) som vil returnere maksimale verdier per gruppe.
  2. Den andre parameteren tar en enkelt eller flere kolonner (gruppering) i en liste slik at verdiene er gruppert i disse kolonnene.
  3. Den tredje parameteren tar moro, som vil ta MAX -funksjonen for å returnere maksimale verdier i de grupperte verdiene.

Eksempel 1
I dette eksemplet grupperer vi verdiene i kolonnen Market_place og får maksimale verdier i markedet_squarefeet -kolonnen gruppert av Market_place -kolonnen.

#Create et dataaframmarked som har 7 rader og 5 kolonner.
Markeds = data.Ramme (Market_id = C (1,2,1,4,3,4,5), Market_name = C ('M1', 'M2', 'M3',
'M4', 'M3', 'M4', 'M3'), Market_place = C ('India', 'USA', 'India', 'Australia', 'USA',
'India', 'Australia'), Market_Type = C ('Grocery', 'Bar', 'Grocery', 'Restainent',
'dagligvare', 'Bar', 'dagligvare'), Market_SquareFeet = C (120,342,220,110,342,220,110)))
#Få maksimalt kvadratmeter i gruppen ved å gruppere Market_place
Print (Aggregate (Market $ Market_SquareFeet, List (Market $ Market_Place), Fun = Max))

Resultat

Vi kan se at de lignende verdiene (Australia, India og USA) i markedskolonnen er gruppert og returnerer maksimum av grupperte verdier i markedet for markedsplasser.

Eksempel 2
I dette eksemplet grupperer vi verdiene i kolonnen Market_Type og får maksimale verdier i markedet for markedet_squarefeet gruppert av Market_Type -kolonnen.

#Create et dataaframmarked som har 7 rader og 5 kolonner.
Markeds = data.Ramme (Market_id = C (1,2,1,4,3,4,5), Market_name = C ('M1', 'M2', 'M3',
'M4', 'M3', 'M4', 'M3'), Market_place = C ('India', 'USA', 'India', 'Australia', 'USA',
'India', 'Australia'), Market_Type = C ('Grocery', 'Bar', 'Grocery', 'Restainent',
'dagligvare', 'Bar', 'dagligvare'), Market_SquareFeet = C (120,342,220,110,342,220,110)))
#Få maksimalt kvadratmeter i gruppen ved å gruppere Market_Type
Print (Aggregate (Market $ Market_SquareFeet, List (Market $ Market_Type), Fun = Max))

Resultat

Vi kan se at de lignende verdiene (bar, dagligvarebutikk og restaurant) i kolonnen Market_Type er gruppert og returnerer maksimalt grupperte verdier i markedet for markedet_square føtter.

Eksempel 3
I dette eksemplet grupperer vi verdiene i markedet for markeds_type og markedsplasser og får maksimale verdier i markedet for markedet_squarefeet gruppert av Market_Type og Market_place Columns.

#Create et dataaframmarked som har 7 rader og 5 kolonner.
Markeds = data.Ramme (Market_id = C (1,2,1,4,3,4,5), Market_name = C ('M1', 'M2', 'M3',
'M4', 'M3', 'M4', 'M3'), Market_place = C ('India', 'USA', 'India', 'Australia', 'USA',
'India', 'Australia'), Market_Type = C ('Grocery', 'Bar', 'Grocery', 'Restainent',
'dagligvare', 'Bar', 'dagligvare'), Market_SquareFeet = C (120,342,220,110,342,220,110)))
#Få maksimalt kvadratmeter i gruppen ved å gruppere Market_place og Market_Type
Print (Aggregate (Market $ Market_SquareFeet, List (Market $ Market_Place, Market $ Market_Type), Fun = Max))

Resultat

Vi kan se at de lignende verdiene fra to kolonner ble gruppert og returnerer maksimalverdiene i hver gruppert verdi i markedet for markedsplasser.

Metode 2: DPLYR

Her bruker vi Group_by med Summarise_at () som er tilgjengelige i DPLYR -biblioteket for å utføre Group_by med MAX -operasjonen.

Syntaks

DataFrame_Object%>% gruppe_by (gruppering)%>% oppsummering_at (vars (gruppert), liste (navn = maks))

Hvor:

  1. gruppe_by () tar en parameter, i.e. grupperingskolonne
  2. Summarise_at () tar to parametere:
  1. Den første parameteren tar variabel -kolonnen (gruppert) som returnerer maksimale verdier per gruppe.
  2. Den andre parameteren tar MAX -funksjonen gjennom listen.

Til slutt oppsummerer vi først med Max og laster den inn i gruppen. Deretter laster vi den grupperte kolonnen i DataFrame -objektet.

Det returnerer en Tibble.

Eksempel 1
I dette eksemplet grupperer vi verdiene i kolonnen Market_place og får maksimale verdier i markedet_squarefeet -kolonnen gruppert av Market_place -kolonnen.

Bibliotek ("DPLYR")
#Få maksimalt kvadratmeter i gruppen ved å gruppere Market_place
Print (Market %> %GROUP_BY (Market_Place) %> %
Summarise_at (vars (Market_squareFeet), liste (navn = maks))))

Resultat

Vi kan se at de lignende verdiene (Australia, India og USA) i markedskolonnen er gruppert og returnerer det maksimale fra hver gruppert verdi i markedet for markedsplasser.

Eksempel 2
I dette eksemplet grupperer vi verdiene i kolonnen Market_Type og får maksimale verdier i Columns -kolonnen Market_SquareFeet Grouped by Market_Type.

Bibliotek ("DPLYR")
#Få maksimalt kvadratmeter i gruppen ved å gruppere Market_Type
Print (Market %> %GROUP_BY (Market_Type) %> %
Summarise_at (vars (Market_squareFeet), liste (navn = maks))))

Resultat

Vi kan se at de lignende verdiene (bar, dagligvarebutikk og restaurant) i kolonnen Market_Type er gruppert og returnerer maksimale verdier i hver gruppert verdi i markedet for markedet.

Konklusjon

Det er mulig å gruppere enkelt- eller flere kolonner med andre numeriske kolonner for å returnere den maksimale verdien fra den numeriske kolonnen ved å bruke aggregat () -funksjonen. Tilsvarende kan vi bruke GroupBy () -funksjonen med Summarise_at () -funksjonen for å gruppere de lignende verdiene i en kolonne og returnere de maksimale verdiene fra de grupperte verdiene med hensyn til en annen kolonne.