# How to Use the mapply() Function in R (With Examples)

The mapply() function in R can be used to apply a function to multiple list or vector arguments.

This function uses the following basic syntax:

mapply(FUN, …, MoreArgs = NULL, SIMPLIFY = TRUE, USE.NAMES = TRUE)

where:

• FUN: The function to apply
• : Arguments to vectorize over
• MoreArgs: A list of other arguments to FUN
• SIMPLIFY: Whether or not to reduce the result to a vector.
• USE.NAMES: Whether or not to use names if the first … argument has names

The following examples show how to use this function in different scenarios.

### Example 1 : Use mapply() to Create a Matrix

The following code shows how to use mapply() to create a matrix by repeating the values c(1, 2, 3) each 5 times:

```#create matrix
mapply(rep, 1:3, times=5)

[,1] [,2] [,3]
[1,]    1    2    3
[2,]    1    2    3
[3,]    1    2    3
[4,]    1    2    3
[5,]    1    2    3
```

Notice how this is much more efficient than typing out the following:

```#create same matrix as previous example
matrix(c(rep(1, 5), rep(2, 5), rep(3, 5)), ncol=3)

[,1] [,2] [,3]
[1,]    1    2    3
[2,]    1    2    3
[3,]    1    2    3
[4,]    1    2    3
[5,]    1    2    3```

### Example 2: Use mapply() to Find Max Value of Corresponding Elements in Vectors

The following code shows how to use mapply() to find the max value for corresponding elements in two vectors:

```#create two vectors
vector1 <- c(1, 2, 3, 4, 5)
vector2 <- c(2, 4, 1, 2, 10)

#find max value of each corresponding elements in vectors
mapply(max, vector1, vector2)

[1]  2  4  3  4 10
```

Here’s how to interpret the output:

• The max value of the elements in position 1 of either vector is 2.
• The max value of the elements in position 2 of either vector is 4.
• The max value of the elements in position 3 of either vector is 3.

And so on.

### Example 3: Use mapply() to Multiply Corresponding Elements in Vectors

The following code shows how to use mapply() to find multiply the corresponding elements in several vectors:

```#create three vectors
vec1 <- c(1, 2, 3, 4)
vec2 <- c(2, 4, 6, 8)
vec3 <- c(3, 6, 9, 12)

#find max value of each corresponding elements in vectors
mapply(function(val1, val2, val3) val1*val2*val3, vec1, vec2, vec3)

[1]   6  48 162 384
```

Here’s how to interpret the output:

• The product of the elements in position 1 of each vector is 1 * 2 * 3 = 6.
• The product of the elements in position 2 of each vector is 2 * 4 * 6 = 48.
• The product of the elements in position 3 of each vector is 3 * 6 * 9 = 162.
• The product of the elements in position 4 of each vector is 4 * 8 * 12 = 384.