Hoe de ntile()-functie in dplyr te gebruiken (met voorbeelden)


U kunt de functie ntile() uit het dplyr- pakket in R gebruiken om een invoervector in n bakken te verdelen.

Deze functie gebruikt de volgende basissyntaxis:

ntiel(x, n)

Goud:

  • x : invoervector
  • n : Aantal compartimenten

Opmerking : De afmetingen van de emmers kunnen maximaal één verschillen.

De volgende voorbeelden laten zien hoe u deze functie in de praktijk kunt gebruiken.

Voorbeeld 1: Gebruik ntile() met een vector

De volgende code laat zien hoe u de functie ntile() gebruikt om een vector van 11 elementen in 5 verschillende buckets te verdelen:

 library (dplyr)

#createvector
x <- c(1, 3, 4, 6, 7, 8, 10, 13, 19, 22, 23)

#break up vector into 5 buckets
ntile(x, 5)

 [1] 1 1 1 2 2 3 3 4 4 5 5

Uit het resultaat kunnen we zien dat elk element van de originele vector in een van de vijf emmers is geplaatst.

De kleinste waarden worden toegewezen aan bucket 1, terwijl de grootste waarden worden toegewezen aan bucket 5.

Bijvoorbeeld:

  • De kleinste waarden van 1, 3 en 4 worden toegewezen aan bucket 1 .
  • De grootste waarden, 22 en 23, worden toegewezen aan bucket 5 .

Voorbeeld 2: Ntile() gebruiken met een dataframe

Stel dat we het volgende gegevensframe in R hebben dat de punten weergeeft die door verschillende basketbalspelers zijn gescoord:

 #create data frame
df <- data. frame (player=LETTERS[1:9],
                 points=c(12, 19, 7, 22, 24, 28, 30, 19, 15))

#view data frame
df

  player points
1 to 12
2 B 19
3 C 7
4 D 22
5 E 24
6 F 28
7 G 30
8:19 a.m.
9 I 15

De volgende code laat zien hoe u de functie ntile() gebruikt om een nieuwe kolom in het dataframe te maken waarin elke speler wordt toegewezen aan een van de drie buckets, op basis van de gescoorde punten:

 library (dplyr)

#create new column that assigns players into buckets based on points
df$bucket <- ntile(df$points, 3)

#view updated data frame
df

  player points bucket
1 to 12 1
2 B 19 2
3 C 7 1
4 D 22 2
5 E 24 3
6 F 28 3
7 G 30 3
8:19 2
9 I 15 1

De nieuwe bucketkolom kent aan elke speler een waarde tussen 1 en 3 toe.

Spelers met de laagste punten krijgen een waarde van 1 en spelers met de hoogste punten krijgen een waarde van 3 .

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende functies in R kunt gebruiken:

Hoe de cross()-functie in dplyr te gebruiken
Hoe de functie move() in dplyr te gebruiken
Hoe de slice()-functie in dplyr te gebruiken

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert