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