pmap 不一致的行为?

pmap inconsistent behavior?

比较

mtcars %>% mutate(a = pmap(list(gear, carb), sum))

"works" 符合预期,

mtcars %>% mutate(a = pmap(list(gear, carb), mean))

没有。

我显然遗漏了一些东西。

区别与函数接口有关:sum() 接受任意数量的参数(通常称为 "dots"),而 mean() 需要一个向量:

sum( 1, 2, 3 )       # 6
mean( c(1,2,3) )     # 2

要将 mean() 等基于向量的函数与 pmap() 一起使用,您可以 lift its domain 从向量到点:

mtcars %>% mutate(a = pmap(list(gear, carb), lift_vd(mean)))    # Now works as expected