Come dividere i dati in gruppi di uguali dimensioni in r


È possibile utilizzare la funzione cut_number() del pacchetto ggplot2 in R per dividere un vettore in gruppi di uguali dimensioni.

Questa funzione utilizza la seguente sintassi di base:

numero_taglio(x,n)

Oro:

  • x: Nome del vettore digitale da dividere
  • n: numero di gruppi

L’esempio seguente mostra come utilizzare questa funzione nella pratica.

Esempio: come dividere i dati in gruppi di uguali dimensioni in R

Supponiamo di avere il seguente frame di dati in R che contiene informazioni sui punti segnati da 12 diversi giocatori di basket

 #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

Correlato: Come utilizzare la funzione LETTERE in R

Possiamo usare la funzione cut_number() del pacchetto ggplot2 per creare una nuova colonna chiamata group che divide ogni riga del data frame in uno dei tre gruppi in base al valore nella colonna points :

 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]

Ciascuno dei 12 giocatori è stato inserito in uno dei tre gruppi in base al valore mostrato nella colonna dei punti .

Dal risultato possiamo vedere che ci sono 3 gruppi distinti:

  • gruppo 1: il valore dei punti è compreso tra 1 e 3,33.
  • gruppo 2: il valore dei punti è compreso tra 3,33 e 10.
  • gruppo 3: il valore dei punti è compreso tra 10 e 22.

Possiamo vedere che in ciascun gruppo sono stati inseriti quattro giocatori.

Se vuoi che la colonna group visualizzi i gruppi come valori interi, puoi racchiudere la funzione cut_number() in una funzione as.numeric() :

 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

La nuova colonna del gruppo ora contiene i valori 1, 2 e 3 per indicare a quale gruppo appartiene il giocatore.

Anche in questo caso, ogni gruppo comprende quattro giocatori.

Nota : per dividere la colonna dei punti in più di tre gruppi, sostituisci semplicemente il 3 nella funzione cut_number() con un numero diverso.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in R:

Come dividere un frame di dati in R
Come suddividere i dati in set di training e test in R
Come eseguire il raggruppamento dei dati in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *