Hoe de match()-functie in r te gebruiken (met voorbeelden)
De functie match() in R retourneert de positie van de eerste overeenkomst tussen twee objecten.
Deze functie gebruikt de volgende basissyntaxis:
match(object1, object2)
De volgende voorbeelden laten zien hoe u deze functie in verschillende scenario’s kunt gebruiken.
Voorbeeld 1: Matchen van een waarde in een vector
De volgende code laat zien hoe u de functie match() gebruikt om de eerste keer dat een specifieke waarde in een vector voorkomt te vinden:
#define value to look for in vector
value <- 10
#define vector of values
vector1 <- c(8, 9, 1, 10, 13, 15)
#find first occurrence of 10
match(value, vector1)
[1] 4
Dit vertelt ons dat de waarde 10 voor het eerst verschijnt op de 4e positie van de vector.
Houd er rekening mee dat als meerdere waarden overeenkomen, alleen de positie van de eerste overeenkomst wordt geretourneerd.
De volgende vector heeft bijvoorbeeld twee waarden gelijk aan 10, maar alleen de positie van de eerste 10 wordt geretourneerd:
#define value to look for in vector
value <- 10
#define vector of values with multiple '10' values
vector1 <- c(8, 9, 1, 10, 10, 10)
#find first occurrence of 10
match(value, vector1)
[1] 4
De waarde 10 verschijnt op posities 4, 5 en 6, maar alleen positie 4 wordt geretourneerd.
Voorbeeld 2: Waarden matchen in twee vectoren
De volgende code laat zien hoe u de functie match() gebruikt om de eerste keer dat waarden in de ene vector in een andere vector voorkomen te vinden:
#define vectors of values
vector1 <- c(1, 2, 3, 4, 5, 6)
vector2 <- c(8, 6, 1, 10, 10, 15)
#find first occurrence of values in vector1 within vector2
match(vector1, vector2)
[1] 3 NA NA NA NA 2
Zo interpreteert u het resultaat:
- De eerste keer dat de waarde 1 in vector1 voorkomt, vindt plaats op positie 3 van vector2.
- De waarde 2 in vector1 verschijnt nooit in vector2.
- De waarde 3 in vector1 verschijnt nooit in vector2.
- De waarde 4 in vector1 komt nooit voor in vector2.
- De waarde 5 in vector1 verschijnt nooit in vector2.
- De eerste keer dat de waarde 6 in vector1 voorkomt, vindt plaats op positie 2 van vector2.
Houd er rekening mee dat we ook een andere waarde kunnen opgeven die moet worden gebruikt in gevallen waarin er geen overeenkomst is.
We kunnen bijvoorbeeld een waarde van 0 retourneren in plaats van NA:
#define vectors of values
vector1 <- c(1, 2, 3, 4, 5, 6)
vector2 <- c(8, 6, 1, 10, 10, 15)
#find first occurrence of values in vector1 within vector2
match(vector1, vector2, nomatch= 0 )
[1] 3 0 0 0 0 2
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende functies in R kunt gebruiken:
Hoe de summary()-functie in R te gebruiken
Hoe de functie repliceren() in R te gebruiken
Hoe de gsub()-functie in R te gebruiken
Hoe de par()-functie in R te gebruiken