map(.x, .f)
map() in R
Functions
In this blog, I’m going to explain the functionality of a R function, map()
.
Introduction
map()
is a R function
which is used to apply some function to each element in a vector or list and return a list as a result.
Function definition
Definition of parameters
- .x: A list or atomic vector.
- .f: A function.
Examples
Example 1: Transform each value in a vector
The following code shows how to use the map()
function to calculate the log (base 10) of each value in a vector:
library(purrr)
# To define vector
<- c(2, 4, 10, 15, 20)
data
# To calculate log of each value in the vector
%>%
data map(function(x) log10(x))
[[1]]
[1] 0.30103
[[2]]
[1] 0.60206
[[3]]
[1] 1
[[4]]
[1] 1.176091
[[5]]
[1] 1.30103
<- data %>%
result map(function(x) log10(x))
To obtain the elements form the list:
## i is the index of the list result[[i]]
1]] result[[
[1] 0.30103
5]] result[[
[1] 1.30103
Example 2: Generate random numbers for a list of sample size
# To define vector
<- c(3, 5, 8, 10)
sample_size
# To calculate log of each value in the vector
%>%
sample_size map(function(x) runif(x))
[[1]]
[1] 0.83657822 0.52427993 0.06325641
[[2]]
[1] 0.7281998 0.8435732 0.7056618 0.3041016 0.2060783
[[3]]
[1] 0.4010470 0.8529365 0.8437544 0.1792954 0.6787083 0.6724727 0.3594332
[8] 0.8774093
[[4]]
[1] 0.807383182 0.508806102 0.549565474 0.917473407 0.189435094 0.278735327
[7] 0.001623599 0.565823819 0.778334239 0.790809778
<- sample_size %>%
result_random map(function(x) runif(x))
To obtain the elements form the list:
1]] ## To obtain first list result_random[[
[1] 0.07161259 0.81010021 0.53039259
1]][2] ## To obtain second element of the first list result_random[[
[1] 0.8101002