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
比较
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