In R, the map() function is part of the purrr package, allows you to apply a function to each element of a vector or list, and returns the results as a new list.
Syntax
map(rv, func, ...)
Parameters
The rv is an atomic vector or list.
The func is a function, formula, or atomic vector.
- If it is a function, it is used as it is.
- If it is a formula, e.g., ~ .x + 1, it is converted to a function. There are three ways to refer to the arguments:
- If it is a single argument function, use it.
- If there are two arguments function, use .x and .y.
- If there are more arguments, use ..1, ..2, ..3, etc.
- If it is a single argument function, use it.
Return Value
The map() function returns a vector of the same length as the input.
Example 1: How to use the map() function in R
Pass a function in the argument, and the map() function applies this function to all the vector elements.
# Pro.R
library(purrr)
rv <- 1:3
rv %>%
map(function(x) x + 1)
Output
[[1]]
[1] 2
[[2]]
[1] 3
[[3]]
[1] 4
First, we import the purrr package using the library() statement.
In the next step, we define a vector and increment each vector value by 1 using the map() function. You can see that the map() function applies +1 to every vector element, and it does not modify the length of the vector.
Example 2: Applying the map() function to list
To apply the same operations on all the list elements, use the map() function. It returns the transformed list of the same size as an input list.
library(purrr)
list_data <- list(19, 21, 46)
list_data %>%
map(function(x) x ^ 2)
Output
[[1]]
[1] 361
[[2]]
[1] 441
[[3]]
[1] 2116
We defined a list and used the map() function to transform every element into the input list of elements squared.
Example 3: Calculate the normal distributions from an atomic vector
You can calculate the normal distributions from the vector using the map() function.
library(purrr)
1:10 %>%
map(function(x) rnorm(10, x))
Output
[[1]]
[1] 0.7827287 0.8524386 1.0590045 -1.2431661 0.4175271 1.4974232
[7] 0.2870406 0.5992063 1.4848386 1.6218882
[[2]]
[1] 1.00669429 1.53255379 2.04919607 1.73777599 1.40305088 1.78990628
[7] 0.72417310 0.68788464 0.73435835 -0.08438977
[[3]]
[1] 4.517348 4.074736 3.678984 1.685608 3.078273 4.279211 2.774305 2.994225
[9] 4.006520 4.695956
[[4]]
[1] 2.365310 4.790439 4.514782 3.892882 2.655238 4.880776 3.393000 2.039758
[9] 4.849628 2.765497
[[5]]
[1] 5.227805 7.523240 5.431224 3.455294 5.457139 3.887880 3.846306 5.197063
[9] 5.574604 4.019978
[[6]]
[1] 7.095229 6.684091 4.094152 7.302912 8.209158 6.993704 5.047641 7.105118
[9] 7.331152 5.688645
[[7]]
[1] 5.905737 5.314832 6.886748 8.110370 6.005540 5.490614 8.844083 7.163475
[9] 5.294017 8.072895
[[8]]
[1] 8.455733 8.217845 8.385706 8.577377 7.520048 7.347701 6.831893 6.173750
[9] 8.633676 8.496391
[[9]]
[1] 6.979906 8.384546 9.342730 9.802514 9.958217 8.582408 9.607740 8.294869
[9] 9.111597 9.483675
[[10]]
[1] 9.229792 9.164576 9.420438 11.296276 9.494806 10.186833 10.290970
[8] 9.919838 8.789936 10.279902
Conclusion
The map() function in R applies a function to each element of a vector or list and returns a list as a result. You must install and load the purrr package before using the map() function.
The map() methods(map and other variants) transform their input by applying a function to each item of a vector or list and returning the object with the same length as the input.

Krunal Lathiya is a Software Engineer with over eight years of experience. He has developed a strong foundation in computer science principles and a passion for problem-solving. In addition, Krunal has excellent knowledge of Data Science and Machine Learning, and he is an expert in R Language.