10.5 pmap系列函数
pmap 系列函数可以映射多个(2个以上)参数,两个参数使用 map2 函数。
pmap(.l, .f, ...)
pmap_lgl(.l, .f, ...)
pmap_int(.l, .f, ...)
pmap_dbl(.l, .f, ...)
pmap_chr(.l, .f, ...)
pmap_raw(.l, .f, ...)
pmap_dfr(.l, .f, ..., .id = NULL)
pmap_dfc(.l, .f, ...)
pwalk(.l, .f, ...)
<- list(1,3,5)
li1 <- list(2,4,6)
li2 <- list(2,4,6)
li3 <- c(1,3,5)
li1 <- c(2,4,6)
li2 <- c(2,3,4)
li3 <- list(li1,li2,li3)
li pmap(li,sum)
#> [[1]]
#> [1] 5
#>
#> [[2]]
#> [1] 10
#>
#> [[3]]
#> [1] 15
<- data.frame(
df x = 1:3,
y = 10:12,
z = letters[1:3]
)
<- function(x, y, ...) x + y
plus2 pmap_dbl(df, plus2)
#> [1] 11 13 15
注意上述代码中plus2函数的特殊性,运用了…参数
本章开始案例中的 pmap 函数的应用,将各种参数构造为 data.frame,运用好此特性,可以发挥强大作用。
<- data.frame(
df x = c("apple", "banana", "cherry"),
pattern = c("p", "n", "h"),
replacement = c("P", "N", "H"),
stringsAsFactors = FALSE
)pmap(df, gsub)
#> [[1]]
#> [1] "aPPle"
#>
#> [[2]]
#> [1] "baNaNa"
#>
#> [[3]]
#> [1] "cHerry"
对大部分数据分析师而言,掌握 map 系列以及 map 变种系列函数即可很好处理大部分数据问题。