10.4 map2 系列函数
map2 系列函数是对 map 系列函数的升级,map 系列函数是一个列表参数,而 map2 系列是两个列表参数。常用函数如下:
map2(.x, .y, .f, ...)
map2_lgl(.x, .y, .f, ...)
map2_int(.x, .y, .f, ...)
map2_dbl(.x, .y, .f, ...)
map2_chr(.x, .y, .f, ...)
map2_raw(.x, .y, .f, ...)
map2_dfr(.x, .y, .f, ..., .id = NULL)
map2_dfc(.x, .y, .f, ...)
walk2(.x, .y, .f, ...)
两个列表相加
<- list(1, 1, 1)
x <- list(10, 20, 30)
y
map2(x, y, ~ .x + .y)
#> [[1]]
#> [1] 11
#>
#> [[2]]
#> [1] 21
#>
#> [[3]]
#> [1] 31
map2(x, y, `+`)
#> [[1]]
#> [1] 11
#>
#> [[2]]
#> [1] 21
#>
#> [[3]]
#> [1] 31
两个向量分别相加后构造新的数据框
<- function(arg1, arg2){
ex_fun <- arg1 + arg2
col <- as.data.frame(col)
x
}<- 1:4
arg1 <- 10:13
arg2 map2_dfr(arg1, arg2, ex_fun)
#> col
#> 1 11
#> 2 13
#> 3 15
#> 4 17
map2_dfc(arg1, arg2, ex_fun)
#> New names:
#> * col -> col...1
#> * col -> col...2
#> * col -> col...3
#> * col -> col...4
#> col...1 col...2 col...3 col...4
#> 1 11 13 15 17
两个列表中取较小值
<- data.frame(
df x = c(1, 2, 5),
y = c(5, 4, 8)
)
pmin(df$x, df$y)
#> [1] 1 2 5
map2_dbl(df$x, df$y, min)
#> [1] 1 2 5