Use the match() function in R when you need to find the first match in a vector. We will show you how.

**match() Function In R**

What this function does is to find the first element in a vector that matches your desired value and return it. The syntax of match() looks like this:

`match(x, table, nomatch, incomparables)`

For the first examples, you only need to pay attention to the first two arguments. table is the vector where you want to find certain values while x contains values you want to find. Remember that long vectors are only supported by x, not table.

Let’s illustrate the capabilities of match() by creating a numeric vector containing 10 integers. You can use the functions runif() and round() in conjunction to quickly create a vector like this:

a <- round(runif(n=10, min=1, max=20), 0) a

Output* *

` [1] 16 19 8 4 17 19 7 7 19 8`

Now assume you don’t know in advance whether vector a contains the number 7 and if it does, where the first element is. You can use the match() function like this to find out:

match (7, a)

Output

`[1] 7`

The command above returns a number, meaning there is indeed at least one element in a has value 7, and the only or first element is the 7th element in the vector. Note that R doesn’t use zero-indexing – the indexes start at 1 instead.

You can also see that match() ignores all other elements after the first match, even though they also contain value 7.

What if we provide match() with a number not available in the vector, such as 10? It will simply return NA, indicating that there is no such value in the vector you provide.

match(10, a)

Output

`[1] NA`

The match() function can also find multiple values in the same vector in a single command. You just need to combine all the values you want to find in a vector, and match() will return a vector of the same length containing the index position of the matches. If a value has no match, the NA value is returned.

match(c(2, 4, 6, 8), a)

`[1] NA 4 NA 3`

The example above tells match() to find the first positions of numbers 2, 4, 6, 8 in a. The returned vector is NA, 4, NA, 3. This means there is no element 2 or 6 in a, and the 4th and 3rd elements are the first elements that contain values 4 and 8, respectively.

If you want match() to return another integer value instead of NA when there is no match, use the nomatch argument. This command returns 0 if match() doesn’t find any element matching your provided value:

match(c(2, 4, 6, 8), a, nomatch = 0)

`[1] 0 4 0 3`

If you only need to know a match occurs, use the logical vector %in%. The output contains TRUE and FALSE values indicating whether the original vector contains your desired values:

c(2, 4, 6, 8) %in% a

`[1] FALSE TRUE FALSE TRUE`

**Summary**

The match() function in R can help you find the index positions of the first elements that have specific values. You can also use the companion operator %in% to find out whether such matches exist without knowing their positions exactly.

My name is Robert. I have a degree in information technology and two years of expertise in software development. I’ve come to offer my understanding on programming languages. I hope you find my articles interesting.

**Job:** Developer

**Name of the university: **HUST

**Major**: IT

**Programming Languages**: Java, C#, C, Javascript, R, Typescript, ReactJs, Laravel, SQL, Python