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

Aggiungi un commento

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