Gegevens splitsen in groepen van gelijke grootte in r


U kunt de functie cut_number() van het ggplot2- pakket in R gebruiken om een vector in groepen van gelijke grootte te verdelen.

Deze functie gebruikt de volgende basissyntaxis:

knipnummer(x,n)

Goud:

  • x: Naam van de digitale vector die moet worden verdeeld
  • n: Aantal groepen

Het volgende voorbeeld laat zien hoe u deze functie in de praktijk kunt gebruiken.

Voorbeeld: Gegevens verdelen in groepen van gelijke grootte in R

Stel dat we het volgende dataframe in R hebben dat informatie bevat over de punten die door 12 verschillende basketbalspelers zijn gescoord

 #create data frame
df <- data. frame (player=LETTERS[1:12],
                 points=c(1, 2, 2, 2, 4, 5, 7, 9, 12, 14, 15, 22))

#view data frame
df

   player points
1 to 1
2 B 2
3 C 2
4 D 2
5 E 4
6 F 5
7 G 7
8:9 a.m.
9 I 12
10 D 14
11K15
12 L 22

Gerelateerd: Hoe de LETTERS-functie in R te gebruiken

We kunnen de functie cut_number() uit het ggplot2- pakket gebruiken om een nieuwe kolom te maken met de naam group , die elke rij van het dataframe verdeelt in een van de drie groepen op basis van de waarde in de puntenkolom :

 library (ggplot2)

#create new column that splits data into three equal sized groups based on points
df$group <- cut_number(df$points, 3)

#view updated data frame
df

   player points group
1 To 1 [1,3.33]
2 B 2 [1,3.33]
3 C 2 [1,3.33]
4 D 2 [1,3.33]
5 E 4 (3.33.10]
6 F 5 (3.33.10]
7 G 7 (3.33.10]
8 A.M. 9 (3.33.10]
9 I 12 (10.22]
10 J 14 (10.22]
11 K 15 (10.22]
12 L 22 (10.22]

Elk van de twaalf spelers werd in een van de drie groepen geplaatst op basis van de waarde die in de puntenkolom wordt weergegeven.

Uit het resultaat kunnen we zien dat er 3 verschillende groepen zijn:

  • groep 1: de waarde van de punten ligt tussen 1 en 3,33.
  • groep 2: de waarde van de punten ligt tussen 3,33 en 10.
  • groep 3: de waarde van de punten ligt tussen de 10 en 22.

We kunnen zien dat er in elke groep vier spelers zijn geplaatst.

Als u wilt dat de groepskolom de groepen als gehele getallen weergeeft, kunt u de functie cut_number() in een functie as.numeric() plaatsen:

 library (ggplot2)

#create new column that splits data into three equal sized groups based on points
df$group <- as. numeric (cut_number(df$points, 3))

#view updated data frame
df

   player points group
1 A 1 1
2 B 2 1
3 C 2 1
4 D 2 1
5 E 4 2
6 F 5 2
7 G 7 2
8:92 a.m.
9 I 12 3
10 D 14 3
11 K 15 3
12 L 22 3

De nieuwe groepskolom bevat nu de waarden 1, 2 en 3 om aan te geven tot welke groep de speler behoort.

Nogmaals, elke groep bestaat uit vier spelers.

Opmerking : om de puntenkolom in meer dan drie groepen te splitsen, vervangt u eenvoudigweg de 3 in de functie cut_number() door een ander getal.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:

Hoe een dataframe in R te splitsen
Gegevens opsplitsen in trainings- en testsets in R
Gegevensgroepering uitvoeren in R

Einen Kommentar hinzufügen

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