A: een complete gids voor tie.method in de rangschikkingsfunctie
U kunt de functie Rank() in basis R gebruiken om een rangorde van waarden in een vector te retourneren.
Deze functie gebruikt de volgende basissyntaxis:
rang(x, na.last=TRUE,ties.method=”gemiddeld”)
Goud:
- x : De vector die de waarden bevat die moeten worden geclassificeerd
- na.last : Indien WAAR, worden ontbrekende waarden als laatste geplaatst. Indien ONWAAR worden ontbrekende waarden als eerste geplaatst.
- tie.method : Hoe om te gaan met stropdassen (standaard is “gemiddeld”)
Het argument Ties.method voor de functie Rank() specificeert hoe banden moeten worden afgehandeld.
Dit argument accepteert de volgende opties:
- gemiddelde : (standaard) Wijst aan elk gekoppeld item de gemiddelde rangorde toe (items op de derde en vierde plaats krijgen beide een rangorde van 3,5)
- eerste : wijst het eerste gekoppelde element toe aan de laagste rang (elementen gerangschikt op de 3e en 4e positie krijgen respectievelijk rang 3 en 4)
- laatste : wijst het laatst gekoppelde element toe aan de laagste rang (elementen gerangschikt op de 3e en 4e positie krijgen respectievelijk rang 4 en 3)
- min : wijst elk gekoppeld item toe aan de laagste rang (items op de derde en vierde plaats krijgen beide een rangorde van 3)
- max : wijst elk gekoppeld item de hoogste rang toe (items op de derde en vierde plaats krijgen beide een rang van 4)
- willekeurig : wijst aan elk gebonden element een willekeurige rang toe (elk van de elementen die op de 3e en 4e positie staan, kan beide rang krijgen)
De volgende voorbeelden laten zien hoe u elke optie in de praktijk kunt gebruiken met het volgende dataframe 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
Voorbeeld 1: Gebruik Rank() met Ties.method=”average”
De volgende code laat zien hoe je een nieuwe kolom maakt die Rank() gebruikt met Ties.method=”average” om een rang aan elke speler toe te wijzen op basis van de waarde van de puntenkolom :
#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
Omdat spelers C en D hetzelfde aantal punten hadden en op positie 3 en 4 stonden, kregen ze allebei hun rankinggemiddelde: 3,5 .
Voorbeeld 2: Gebruik Rank() met Ties.method=”first”
De volgende code laat zien hoe je een nieuwe kolom kunt maken die Rank() gebruikt met Ties.method=”first” om een rang aan elke speler toe te wijzen op basis van de waarde van de puntenkolom :
#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
Omdat spelers C en D hetzelfde aantal punten hadden en posities 3 en 4 bezetten, kreeg de eerste speler tussen deze twee (speler „C“) de laagste rang.
Voorbeeld 3: Gebruik Rank() met Ties.method=”last”
De volgende code laat zien hoe je een nieuwe kolom kunt maken die Rank() gebruikt met Ties.method=”last” om een rang aan elke speler toe te wijzen op basis van de waarde van de puntenkolom :
#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
Omdat spelers C en D hetzelfde aantal punten hadden en posities 3 en 4 bezetten, kreeg de laatste speler tussen deze twee (speler „D“) de laagste rang.
Voorbeeld 4: Gebruik Rank() met Ties.method=”min”
De volgende code laat zien hoe je een nieuwe kolom kunt maken die Rank() gebruikt met Ties.method=”min” om een rang aan elke speler toe te wijzen op basis van de waarde van de puntenkolom :
#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
Omdat spelers C en D hetzelfde aantal punten hadden en zich op posities 3 en 4 bevonden, kregen beide spelers de minimale rang: 3 .
Voorbeeld 5: Gebruik Rank() met Ties.method=”max”
De volgende code laat zien hoe je een nieuwe kolom maakt die Rank() gebruikt met Ties.method=”max” om een rang aan elke speler toe te wijzen op basis van de waarde van de puntenkolom :
#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
Omdat spelers C en D hetzelfde aantal punten hadden en op positie 3 en 4 stonden, kregen beide spelers de maximale rang: 4 .
Voorbeeld 6: Gebruik Rank() met Ties.method=”random”
De volgende code laat zien hoe je een nieuwe kolom kunt maken die Rank() gebruikt met Ties.method=”random” om een rang aan elke speler toe te wijzen op basis van de waarde van de puntenkolom :
#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
Omdat spelers C en D hetzelfde aantal punten hadden en zich op posities 3 en 4 bevonden, kreeg elke speler willekeurig een rang van 3 of 4 toegewezen.
Houd er rekening mee dat wanneer u „random“ gebruikt voor tie.method , de rang die aan elke waarde is toegewezen, elke keer dat u de code uitvoert, kan veranderen.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:
Hoe sort(), order() en Rank() in R te gebruiken
Hoe de percentielrang in R te berekenen
Hoe te sorteren op groep met behulp van dplyr