我正在寻找将函数映射到多个参数的R方法(最好是“ Tidyverse方法”)。
我创建了具有多个参数的函数:
product <- function(a=1, b=2, c=3, d=4){
return(c(a,b,c,d,a*b*c*d))
}
我正在寻找最方便的方法来多次使用具有不同参数的函数。我可以使用map
包中的purrr
函数(在某种程度上),但是有两种情况会卡住我:
1)如果我只想更改,c
2)例如,如果我想更改c
和d
*
我的解决方案比较麻烦。我要么根据我的特定需求围绕该函数创建包装器(所以很多包装器...),要么使用pmap
包中的purrr
函数,例如:
a <- list(1,1,1,1,1)
b <- list(2,2,2,2,2)
c <- list(1,2,3,4,5)
d <- list(4,4,4,4,4)
pmap(list(a,b,c,d), product)
是否有更好的方法来解决这个问题?
答案 0 :(得分:2)
有帮助吗?
如果您只想更改c
map(1:4, product, a = 1, b = 2, d = 4)
如果您只想更改c
和d
pmap(list(1:4, 11:14), product, a = 1, b = 2)
还有一个建议:不要使用c
作为对象名称。 c
是创建矢量的函数。还有其他更好的编码样式。