我正在寻找 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)
有没有更好的方法来解决这个问题?
这有帮助吗?
如果你只想改变
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
是创建向量的函数。其他东西是更好的编码风格。