Schik, filter en groepeer rijen in R met behulp van Dplyr

Schik, filter en groepeer rijen in R met behulp van Dplyr

Deze tutorial is een voortzetting van de discussie over het dplyr- pakket. U leert hoe u rijen in R rangschikt, filtert en groepeert.

De vorige les ging over kolombewerkingen. Deze keer ligt de focus op rijbewerkingen in dplyr .

We behandelen de basis, waaronder het sorteren en filteren van een dataset en het aggregeren en samenvatten van records . Om u een overzicht te geven van wat u kunt verwachten voor deze les, kunt u denken aan een draaitabel in MS Excel.

Inhoudsopgave

Aan de slag

Open een nieuw R-script in RStudio.

Net als bij de les kolombewerkingen, gebruikt deze demonstratie het Lahman-gegevenssetpakket . Download het door snel op Google te zoeken.

Om het Lahman-pakket in R te brengen, voert u library (Lahman) uit . Om het dplyr -pakket in te schakelen, voert u library (tidyverse) uit . Onthoud ook dat een best practice voor naamgevingsconventies in R het gebruik van kleine letters is, dus wijs Teams toe aan teams .

Schik, filter en groepeer rijen in R met behulp van Dplyr

Basisfuncties voor rijbewerkingen

1. Schik rijen in R

De bewerking op de eerste rij in dpylr is arrange() . Met deze functie kunt u rijen opnieuw rangschikken. Het werkt door eerst het dataframe df te rangschikken en vervolgens de gegeven velden.

Schik, filter en groepeer rijen in R met behulp van Dplyr

Laten we bijvoorbeeld sorteren op teamID . Run arrangement (teams, teamID) .

Schik, filter en groepeer rijen in R met behulp van Dplyr

Als u wilt dat ze in aflopende volgorde worden gerangschikt, moet u de functie desc ( ) gebruiken.

Als u bijvoorbeeld op jaar in aflopende volgorde wilt sorteren, voert u arrange (teams, desc(yearID)) uit .

Schik, filter en groepeer rijen in R met behulp van Dplyr

Wanneer u dit doet, wijst u de uitvoer niet terug toe aan teams . Je ziet alleen het resultaat in de Console.

Het is ook mogelijk om op meerdere criteria te sorteren. Als u bijvoorbeeld wilt sorteren op teamID en vervolgens op yearID in aflopende volgorde, hoeft u alleen deze code uit te voeren:

Schik, filter en groepeer rijen in R met behulp van Dplyr

Wanneer u rijen sorteert, wijzigt u de gegevens niet. De gegevens worden gewoon verplaatst. Er wordt niets toegevoegd of verwijderd.

2. Filter rijen in R

De filterfunctie ( ) voegt gegevens toe of verwijdert deze, afhankelijk van de geselecteerde criteria. De basiscode is:

Schik, filter en groepeer rijen in R met behulp van Dplyr

Laten we als voorbeeld alle gegevens ophalen waarbij de yearID groter is dan of gelijk is aan 2000. Volg het formaat van de filterfunctie en voer de benodigde informatie in. Voer het dan uit. Vergeet deze niet toe te wijzen aan een nieuw object. In dit geval werd het toegewezen aan modern .

Schik, filter en groepeer rijen in R met behulp van Dplyr

Om te controleren of de rijen inderdaad zijn gefilterd, kunt u de functie dim ( ) gebruiken . Het geeft het aantal rijen en kolommen in het dataframe.

Als u dim (teams) uitvoert , ziet u dat het dataframe 2.955 rijen en 48 kolommen heeft.

Schik, filter en groepeer rijen in R met behulp van Dplyr

Als u de functie dim uitvoert op modern , ziet u dat het aantal rijen is teruggebracht tot 630 terwijl het aantal kolommen hetzelfde blijft.

Schik, filter en groepeer rijen in R met behulp van Dplyr

De rijen zijn afgekapt omdat sommige records verder gaan dan het jaar 2000.

Filter rijen op meerdere velden

Het is ook mogelijk om rijen te filteren op meerdere velden in R. U moet de AND- en OR- instructies gebruiken.

Laten we bijvoorbeeld teams filteren op gebied. In dit geval wordt een nieuw object ohio gemaakt. De filtercriteria zijn dat teamID alleen Cleveland EN Cincinnati mag bevatten.

Schik, filter en groepeer rijen in R met behulp van Dplyr

U moet het dubbele gelijkteken ( == ) gebruiken om de gelijkheid te controleren. Als u slechts één gelijkteken gebruikt, beschouwt R dit als een toewijzingsoperator. Gebruik de ampersand ( & ) om AND weer te geven.

Gebruik de dimfunctie om dit te controleren . U zult zien dat het aantal rijen 0 is.

Schik, filter en groepeer rijen in R met behulp van Dplyr

Dit betekent dat er geen teams zijn waar ze allebei zijn gevestigd in Cleveland en Cincinnati.

Laten we vervolgens de Cleveland OR Cincinnati proberen. De OR-operator wordt vertegenwoordigd door de pipe-operator ( | ). U hoeft dus alleen de ampersand te vervangen door de pipe-operator en deze vervolgens uit te voeren. Voer daarna de dimfunctie opnieuw uit.

Schik, filter en groepeer rijen in R met behulp van Dplyr

U zult zien dat er 251 rijen zijn in plaats van nul.

Wat als u vergeet een dubbel gelijkteken te gebruiken en in plaats daarvan slechts één teken gebruikt? Dit is wat er gebeurt:

Schik, filter en groepeer rijen in R met behulp van Dplyr

RStudio toont een zeer nuttig foutbericht in de console om u eraan te herinneren het dubbele gelijkteken te gebruiken.

3. Groepeer op en vat rijen samen in R

Met de functie groeperen op ( ) kunt u records aggregeren op basis van geselecteerde kolommen en vervolgens op basis van die aggregatie een andere kolom samenvatten.

De functie groeperen op ( ) volgt dit algoritme:

Schik, filter en groepeer rijen in R met behulp van Dplyr

Laten we als voorbeeld groeperen op teamID en deze toewijzen aan een nieuw object. In dit geval heet het nieuwe object teams_ID . Druk het vervolgens af.

Schik, filter en groepeer rijen in R met behulp van Dplyr

In de console zult u merken dat de eerste regel zegt dat het een tibble is .

Schik, filter en groepeer rijen in R met behulp van Dplyr

Een tibble is een grote verbetering ten opzichte van het basisgegevensframe. Het is een functie in het pakket die uitbreidt en verbetert wat er standaard beschikbaar is.

De tweede regel is Groepen . De gegevens zijn nu dus gegroepeerd op de teamID-kolom.

Schik, filter en groepeer rijen in R met behulp van Dplyr

En daarmee kunt u nu de functie samenvatten ( ) voor die groepen gebruiken.

Schik, filter en groepeer rijen in R met behulp van Dplyr

Opmerking: de samenvattingsfunctie kan met een s of z zijn, en is afhankelijk van het gebruik van Brits of Amerikaans Engels.

Laten we bijvoorbeeld teams_ID samenvatten en enkele algemene samenvattende statistieken ophalen. Laten we eens kijken naar het gemiddelde, minimum en maximum van de overwinningen voor elk team. Vergeet niet om de volledige code te markeren voordat u Uitvoeren kiest .

Schik, filter en groepeer rijen in R met behulp van Dplyr

U kunt dan in de Console zien dat er een samenvatting van de statistieken van elk team wordt weergegeven. Dit lijkt sterk op een draaitabel waarin u gegevens samenvoegt en samenvat.


Dataframes in R: de basis leren
Factorniveaus in R: categorische en ordinale variabelen gebruiken
Kolommen toevoegen, verwijderen en hernoemen in R dplyr gebruiken

Conclusie

Om samen te vatten zijn er twee bewerkingen in dplyr besproken. Een eerdere zelfstudie was gericht op kolombewerkingen. Ondertussen liet deze huidige les zien hoe u rijbewerkingen uitvoert met het dplyr- pakket in RStudio. U hebt met name geleerd hoe u rijen in R kunt rangschikken, filteren en groeperen.

Het volgende dat u moet leren, is hoe u deze twee bewerkingen kunt combineren. Het gebruik van alle functies die u tot nu toe hebt geleerd, zal u enorm helpen bij het maken van codes in R. Een meer nuttige techniek zou echter een pijplijn zijn. Dit zal helpen om alles samen te laten vloeien. Bekijk dus zeker ook de volgende tutorials.


Wat is zelf in Python: voorbeelden uit de echte wereld

Wat is zelf in Python: voorbeelden uit de echte wereld

Wat is zelf in Python: voorbeelden uit de echte wereld

Een RDS-bestand opslaan en laden in R

Een RDS-bestand opslaan en laden in R

Je leert hoe je objecten uit een .rds-bestand in R opslaat en laadt. In deze blog wordt ook besproken hoe je objecten uit R naar LuckyTemplates importeert.

First N Business Days Revisited – Een DAX-coderingstaaloplossing

First N Business Days Revisited – Een DAX-coderingstaaloplossing

In deze tutorial over DAX-coderingstaal leert u hoe u de functie GENERATE gebruikt en hoe u de titel van een maat dynamisch wijzigt.

Breng inzichten onder de aandacht met behulp van de Multi Threaded Dynamic Visuals-techniek in LuckyTemplates

Breng inzichten onder de aandacht met behulp van de Multi Threaded Dynamic Visuals-techniek in LuckyTemplates

Deze zelfstudie behandelt hoe u de Multi Threaded Dynamic Visuals-techniek kunt gebruiken om inzichten te creëren op basis van dynamische gegevensvisualisaties in uw rapporten.

Inleiding tot het filteren van context in LuckyTemplates

Inleiding tot het filteren van context in LuckyTemplates

In dit artikel zal ik de filtercontext doornemen. Filtercontext is een van de belangrijkste onderwerpen waarover elke LuckyTemplates-gebruiker in eerste instantie zou moeten leren.

Beste tips voor het gebruik van de apps in LuckyTemplates Online Service

Beste tips voor het gebruik van de apps in LuckyTemplates Online Service

Ik wil laten zien hoe de online service LuckyTemplates Apps kan helpen bij het beheren van verschillende rapporten en inzichten die uit verschillende bronnen zijn gegenereerd.

Analyseer winstmargeveranderingen in de loop van de tijd - analyse met LuckyTemplates en DAX

Analyseer winstmargeveranderingen in de loop van de tijd - analyse met LuckyTemplates en DAX

Leer hoe u wijzigingen in uw winstmarge kunt berekenen met behulp van technieken zoals vertakking van metingen en het combineren van DAX-formules in LuckyTemplates.

Materialisatie-ideeën voor gegevenscaches in DAX Studio

Materialisatie-ideeën voor gegevenscaches in DAX Studio

Deze tutorial bespreekt de ideeën van materialisatie van datacaches en hoe deze de prestaties van DAX beïnvloeden bij het leveren van resultaten.

Zakelijke rapportage met behulp van LuckyTemplates

Zakelijke rapportage met behulp van LuckyTemplates

Als u tot nu toe nog steeds Excel gebruikt, is dit het beste moment om LuckyTemplates te gaan gebruiken voor uw zakelijke rapportagebehoeften.

Wat is LuckyTemplates Gateway? Alles wat u moet weten

Wat is LuckyTemplates Gateway? Alles wat u moet weten

Wat is LuckyTemplates Gateway? Alles wat u moet weten