Gegevensgroepering uitvoeren in r: met voorbeelden
U kunt een van de volgende twee methoden gebruiken om gegevensgroepering in R uit te voeren:
Methode 1: gebruik de functie cut().
library (dplyr) #perform binning with custom breaks df %>% mutate(new_bin = cut(variable_name, breaks=c(0, 10, 20, 30))) #perform binning with specific number of bins df %>% mutate(new_bin = cut(variable_name, breaks= 3 ))
Methode 2: gebruik de functie ntile().
library (dplyr) #perform binning with specific number of bins df %>% mutate(new_bin = ntile(variable_name, n= 3 ))
De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken met het volgende dataframe:
#create data frame
df <- data. frame (points=c(4, 4, 7, 8, 12, 13, 15, 18, 22, 23, 23, 25),
assists=c(2, 5, 4, 7, 7, 8, 5, 4, 5, 11, 13, 8),
rebounds=c(7, 7, 4, 6, 3, 8, 9, 9, 12, 11, 8, 9))
#view head of data frame
head(df)
points assists rebounds
1 4 2 7
2 4 5 7
3 7 4 4
4 8 7 6
5 12 7 3
6 13 8 8
Voorbeeld 1: Voer gegevensgroepering uit met de functie cut().
De volgende code laat zien hoe u gegevensgroepering uitvoert op de puntenvariabele met behulp van de functie cut() met specifieke breekmarkeringen:
library (dplyr)
#perform data binning on variable points
df %>% mutate(points_bin = cut(points, breaks=c(0, 10, 20, 30)))
points assists rebounds points_bin
1 4 2 7 (0.10]
2 4 5 7 (0.10]
3 7 4 4 (0.10]
4 8 7 6 (0.10]
5 12 7 3 (10.20]
6 13 8 8 (10.20]
7 15 5 9 (10.20]
8 18 4 9 (10.20]
9 22 5 12 (20.30]
10 23 11 11 (20.30]
11 23 13 8 (20.30]
12 25 8 9 (20.30]
Houd er rekening mee dat elke rij in het gegevensframe in een van de drie groepen is geplaatst op basis van de waarde van de puntkolom.
We kunnen ook het aantal sprongen specificeren dat moet worden gebruikt om vakken van gelijke breedte te maken, gaande van de minimumwaarde tot de maximumwaarde van de kolom met punten :
library (dplyr)
#perform data binning on variable points
df %>% mutate(points_bin = cut(points, breaks= 3 ))
points assists rebounds points_bin
1 4 2 7 (3.98.11]
2 4 5 7 (3.98.11]
3 7 4 4 (3.98.11]
4 8 7 6 (3.98.11]
5 12 7 3 (11.18]
6 13 8 8 (11.18]
7 15 5 9 (11.18]
8 18 4 9 (11.18]
9 22 5 12 (18.25]
10 23 11 11 (18.25]
11 23 13 8 (18.25]
12 25 8 9 (18.25]
Voorbeeld 2: Voer gegevensgroepering uit met de functie ntile().
De volgende code laat zien hoe u gegevensgroepering uitvoert op de puntenvariabele met behulp van de functie ntile() met een specifiek aantal resulterende groepen:
library (dplyr)
#perform data binning on variable points
df %>% mutate(points_bin = ntile(points, n= 3 ))
points assists rebounds points_bin
1 4 2 7 1
2 4 5 7 1
3 7 4 4 1
4 8 7 6 1
5 12 7 3 2
6 13 8 8 2
7 15 5 9 2
8 18 4 9 2
9 22 5 12 3
10 23 11 11 3
11 23 13 8 3
12 25 8 9 3
Houd er rekening mee dat aan elke rij een vakje van 1 tot 3 is toegewezen op basis van de puntkolomwaarde .
Het is het beste om de functie ntile() te gebruiken als u wilt dat in elke rij een geheel getal wordt weergegeven in plaats van een interval dat het bereik van de bak aangeeft.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:
Hoe waarden in het dataframe in R voorwaardelijk te vervangen
Hoe een getrimd gemiddelde in R te berekenen
Hoe het conditionele gemiddelde in R te berekenen