Come utilizzare la funzione ntile() in dplyr (con esempi)


È possibile utilizzare la funzione ntile() dal pacchetto dplyr in R per dividere un vettore di input in n contenitori.

Questa funzione utilizza la seguente sintassi di base:

ntile(x, n)

Oro:

  • x : vettore di input
  • n : Numero di scomparti

Nota : le dimensioni del secchio possono differire fino a un’unità.

I seguenti esempi mostrano come utilizzare questa funzione nella pratica.

Esempio 1: utilizzare ntile() con un vettore

Il codice seguente mostra come utilizzare la funzione ntile() per dividere un vettore di 11 elementi in 5 contenitori diversi:

 library (dplyr)

#createvector
x <- c(1, 3, 4, 6, 7, 8, 10, 13, 19, 22, 23)

#break up vector into 5 buckets
ntile(x, 5)

 [1] 1 1 1 2 2 3 3 4 4 5 5

Dal risultato possiamo vedere che ogni elemento del vettore originale è stato posizionato in uno dei cinque contenitori.

I valori più piccoli sono assegnati al bucket 1 mentre i valori più grandi sono assegnati al bucket 5.

Per esempio:

  • I valori più piccoli di 1, 3 e 4 sono assegnati al bucket 1 .
  • I valori più grandi, 22 e 23, sono assegnati al bucket 5 .

Esempio 2: utilizzo di ntile() con un frame di dati

Supponiamo di avere il seguente frame di dati in R che mostra i punti segnati da diversi giocatori di basket:

 #create data frame
df <- data. frame (player=LETTERS[1:9],
                 points=c(12, 19, 7, 22, 24, 28, 30, 19, 15))

#view data frame
df

  player points
1 to 12
2 B 19
3 C 7
4 D 22
5 E 24
6 F 28
7 G 30
8:19 a.m.
9 I 15

Il codice seguente mostra come utilizzare la funzione ntile() per creare una nuova colonna nel frame di dati che assegna ciascun giocatore a uno dei tre bucket, in base ai punti segnati:

 library (dplyr)

#create new column that assigns players into buckets based on points
df$bucket <- ntile(df$points, 3)

#view updated data frame
df

  player points bucket
1 to 12 1
2 B 19 2
3 C 7 1
4 D 22 2
5 E 24 3
6 F 28 3
7 G 30 3
8:19 2
9 I 15 1

La nuova colonna bucket assegna un valore compreso tra 1 e 3 a ciascun giocatore.

I giocatori con i punti più bassi ricevono un valore di 1 mentre i giocatori con i punti più alti ricevono un valore di 3 .

Risorse addizionali

I seguenti tutorial spiegano come utilizzare altre funzioni comuni in R:

Come utilizzare la funzione across() in dplyr
Come utilizzare la funzione relocate() in dplyr
Come utilizzare la funzione slice() in dplyr

Aggiungi un commento

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