A: una guida completa al metodo tie.metodo nella funzione di classificazione
È possibile utilizzare la funzione Rank() in base R per restituire un rango di valori in un vettore.
Questa funzione utilizza la seguente sintassi di base:
rango(x, na.last=TRUE,ties.method=”media”)
Oro:
- x : Il vettore che contiene i valori da classificare
- na.last : se TRUE, i valori mancanti vengono inseriti per ultimi. Se FALSE, i valori mancanti vengono messi per primi.
- tie.method : come gestire i valori di parità (l’impostazione predefinita è “media”)
L’argomento Ties.method della funzione Rank() specifica come devono essere gestite le parità.
Questo argomento accetta le seguenti opzioni:
- media : (impostazione predefinita) assegna a ciascun elemento collegato il rango medio (gli elementi classificati 3° e 4° riceverebbero entrambi un rango di 3,5)
- primo : assegna il primo elemento collegato al rango più basso (gli elementi classificati in 3a e 4a posizione riceveranno rispettivamente i ranghi 3 e 4)
- last : assegna l’ultimo elemento collegato al rango più basso (gli elementi classificati in 3a e 4a posizione riceveranno rispettivamente i ranghi 4 e 3)
- min : assegna ciascun elemento collegato al rango più basso (gli elementi classificati 3° e 4° riceveranno entrambi un rango 3)
- max : assegna a ciascun elemento collegato il rango più alto (gli elementi classificati 3° e 4° riceveranno entrambi un rango 4)
- casuale : assegna a ciascun elemento in parità un rango casuale (entrambi gli elementi in parità per la 3a e 4a posizione possono ricevere l’uno o l’altro rango)
I seguenti esempi mostrano come utilizzare in pratica ciascuna opzione con il seguente frame di dati in R:
#create data frame df <- data. frame (player=c('A', 'B', 'C', 'D', 'E'), dots=c(5, 8, 10, 10, 17)) #view data frame df player points 1 to 5 2 B 8 3 C 10 4 D 10 5 E 17
Esempio 1: utilizzare Rank() con Ties.method=”average”
Il codice seguente mostra come creare una nuova colonna che utilizza Rank() con Ties.method=”average” per assegnare un rango a ciascun giocatore in base al valore della colonna dei punti :
#create new column that ranks players based on their points value df$points_rank = rank(df$points, ties. method = “ average ”) #view updated data frame df player points points_rank 1 to 5 1.0 2 B 8 2.0 3 C 10 3.5 4 D 10 3.5 5 E 17 5.0
Dato che i giocatori C e D avevano lo stesso numero di punti ed erano nelle posizioni 3 e 4, entrambi hanno ricevuto la loro media in classifica: 3,5 .
Esempio 2: utilizzare Rank() con Ties.method=”first”
Il codice seguente mostra come creare una nuova colonna che utilizza Rank() con Ties.method=”first” per assegnare un rango a ciascun giocatore in base al valore della colonna dei punti :
#create new column that ranks players based on their points value df$points_rank = rank(df$points, ties. method = " first ") #view updated data frame df player points points_rank 1 to 5 1 2 B 8 2 3 C 10 3 4 D 10 4 5 E 17 5
Poiché i giocatori C e D avevano lo stesso numero di punti e occupavano le posizioni 3 e 4, il primo giocatore tra questi due (giocatore “C”) ha ricevuto il punteggio più basso.
Esempio 3: utilizzare Rank() con Ties.method=”last”
Il codice seguente mostra come creare una nuova colonna che utilizza Rank() con Ties.method=”last” per assegnare un rango a ciascun giocatore in base al valore della colonna dei punti :
#create new column that ranks players based on their points value df$points_rank = rank(df$points, ties. method = " last ") #view updated data frame df player points points_rank 1 to 5 1 2 B 8 2 3 C 10 4 4 D 10 3 5 E 17 5
Poiché i giocatori C e D avevano lo stesso numero di punti e occupavano le posizioni 3 e 4, l’ultimo giocatore tra questi due (giocatore “D”) ha ricevuto il punteggio più basso.
Esempio 4: utilizzare Rank() con Ties.method=”min”
Il codice seguente mostra come creare una nuova colonna che utilizza Rank() con Ties.method=”min” per assegnare un rango a ciascun giocatore in base al valore della colonna dei punti :
#create new column that ranks players based on their points value df$points_rank = rank(df$points, ties. method = " min ") #view updated data frame df player points points_rank 1 to 5 1 2 B 8 2 3 C 10 3 4 D 10 3 5 E 17 5
Poiché i giocatori C e D avevano lo stesso numero di punti ed erano nelle posizioni 3 e 4, entrambi i giocatori hanno ricevuto il punteggio minimo: 3 .
Esempio 5: utilizzare Rank() con Ties.method=”max”
Il codice seguente mostra come creare una nuova colonna che utilizza Rank() con Ties.method=”max” per assegnare un rango a ciascun giocatore in base al valore della colonna dei punti :
#create new column that ranks players based on their points value df$points_rank = rank(df$points, ties. method = " max ") #view updated data frame df player points points_rank 1 to 5 1 2 B 8 2 3 C 10 4 4 D 10 4 5 E 17 5
Poiché i giocatori C e D avevano lo stesso numero di punti ed erano nelle posizioni 3 e 4, entrambi i giocatori hanno ricevuto il punteggio massimo: 4 .
Esempio 6: utilizzare Rank() con Ties.method=”random”
Il codice seguente mostra come creare una nuova colonna che utilizza Rank() con Ties.method=”random” per assegnare un rango a ciascun giocatore in base al valore della colonna dei punti :
#create new column that ranks players based on their points value df$points_rank = rank(df$points, ties. method = " random ") #view updated data frame df player points points_rank 1 to 5 1 2 B 8 2 3 C 10 4 4 D 10 3 5 E 17 5
Poiché i giocatori C e D avevano lo stesso numero di punti ed erano nelle posizioni 3 e 4, a ciascun giocatore è stato assegnato in modo casuale il grado 3 o 4.
Tieni presente che quando usi “random” per tie.method , il rango assegnato a ciascun valore può cambiare ogni volta che esegui il codice.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in R:
Come utilizzare sort(), order() e Rank() in R
Come calcolare il rango percentile in R
Come ordinare per gruppo usando dplyr