Hoe de functie cut() in r te gebruiken


De functie cut() in R kan worden gebruikt om een reeks waarden in bakken te knippen en labels voor elke bak op te geven.

Deze functie gebruikt de volgende syntaxis:

cut(x, breaks, labels = NULL, …)

Goud:

  • x : Vectornaam
  • pauzes : aantal te maken pauzes of vector van breekpunten
  • labels : labels voor de resulterende bakken

De volgende voorbeelden laten zien hoe u deze functie in verschillende scenario’s kunt gebruiken met het volgende dataframe in R:

 #create data frame
df <- data. frame (player=c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'),
                 points=c(4, 7, 8, 12, 14, 16, 20, 26, 36))

#view data frame
df

  player points
1 to 4
2 B 7
3 C 8
4 D 12
5 E 14
6 F 16
7 G 20
8:26 a.m.
9 I 36

Voorbeeld 1: Knip de vector op basis van het aantal pauzes

De volgende code laat zien hoe u de functie cut() gebruikt om een nieuwe kolom met de naam categorie te maken, die de kolom met punten in groepen van vier gelijke groottes opsplitst:

 #create new column that places each player into four categories based on points
df$category <- cut(df$points, breaks= 4 )

#view updated data frame
df

  player points category
1 to 4 (3.97.12]
2 B 7 (3.97.12]
3 C 8 (3.97.12]
4 D 12 (3.97.12]
5 E 14 (12.20]
6 F 16 (12.20]
7 G 20 (12.20]
8:26 a.m. (20.28]
9 I 36 (28.36]

Omdat we breaks=4 hebben opgegeven, verdeelt de functie cut() de waarden in de puntkolom in groepen van vier gelijke groottes.

Hier ziet u hoe de functie cut() dit deed:

  • Eerst vond hij het verschil tussen de grootste en kleinste waarden in de puntenkolom (36 – 4 = 32).
  • Vervolgens deelt hij dit verschil door 4 (32 / 4 = 8)
  • Het resultaat zijn vier bakken met een breedte van elk 8.

Opmerking : het laagste interval is 3,97 in plaats van 4 vanwege de volgende functionaliteit uit de cut() -documentatie :

Wanneer pauzes als één getal worden opgegeven, wordt het bereik van de gegevens verdeeld in pauzes van gelijke lengte. Vervolgens worden de buitenste grenzen 0,1% van het bereik verwijderd om ervoor te zorgen dat de uitschieters binnen beide pauze-intervallen vallen.

Voorbeeld 2: Snijvector op basis van specifieke breekpunten

De volgende code laat zien hoe u de functie cut() gebruikt om een nieuwe kolom met de naam categorie te maken, die de kolom met punten afsnijdt op basis van een vector met specifieke breekpunten:

 #create new column based on specific break points
df$category <- cut(df$points, breaks=c(0, 10, 15, 20, 40))

#view updated data frame
df

  player points category
1 to 4 (0.10]
2 B 7 (0.10]
3 C 8 (0.10]
4 D 12 (10.15]
5 E 14 (10.15]
6 F 16 (15.20]
7 G 20 (15.20]
8:26 a.m. (20.40)
9 I 36 (20.40]

De functie cut() classificeerde elke speler in categorieën op basis van de specifieke vector van breekpunten die we hadden verstrekt.

Voorbeeld 3: Knip een vector met behulp van specifieke breekpunten en labels

De volgende code laat zien hoe u de functie cut() gebruikt om een nieuwe kolom met de naam categorie te maken, die de kolom met punten afsnijdt op basis van een vector van specifieke breekpunten met aangepaste labels:

 #create new column based on values in points column
df$category <- cut(df$points,
                   breaks=c(0, 10, 15, 20, 40),
                   labels=c(' Bad ', ' OK ', ' Good ', ' Great '))

#view updated data frame
df

  player points category
1 A 4 Bad
2 B 7 Bad
3 C 8 Bad
4 D 12 OK
5 E 14 OK
6 F 16 Good
7 G 20 Good
8:26 A.M. Great
9 I 36 Great

De nieuwe categoriekolom rangschikt elke speler als Slecht, OK, Goed of Uitstekend op basis van de overeenkomstige waarde in de puntenkolom .

Opmerking : het aantal labels moet altijd één minder zijn dan het aantal breekpunten om de volgende fout te voorkomen:

 Error in cut.default(df$points, breaks = c(0, 10, 15, 20, 40), labels = c("Bad",: 
  lengths of 'breaks' and 'labels' differ

Aanvullende bronnen

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

Hoe de functie tabulate() in R te gebruiken
Hoe de functie split() in R te gebruiken
Hoe de match()-functie in R te gebruiken
Hoe de functie repliceren() in R te gebruiken

Einen Kommentar hinzufügen

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