我想知道如果我有三个以上的输入参数需要映射到一个带有其他默认输入的函数中,该如何使用pmap()
函数。
以下是一个可重现的示例:
a=c(5, 100, 900)
b=c(1, 2, 3)
ablist=list(mean=a,sd=b)
pmap(ablist, ~rnorm( mean=a , sd=b , n = 9))
输出:
[[1]]
[1] 5.734723 99.883171 895.962561 5.346905 98.723191 903.373177 4.172267 96.424440 897.437970
[[2]]
[1] 4.427977 98.348139 899.287248 4.404674 99.178516 900.983974 3.836353 101.520355 899.992332
[[3]]
[1] 4.961772 95.927525 899.096313 4.444354 101.694591 904.172462 6.231246 97.773325 897.611838
但是你可以看到,输出结果没有按照向量中的mean
和sd
顺序进行映射。
我希望使用rnorm(mean=5,sd=1,n=9)
等方式得到[[1]]
。出于好奇,我想知道pmap()
在这个示例中是如何工作的。
顺便说一下,我知道在这个示例中,我可以轻松使用map2()
,但是在我的实际代码中,我有10个输入,所以需要使用pmap()
。
提前感谢任何回复!
pmap()
很难理解。有什么快速学习的建议吗? - Joannapmap(ablist, rnorm, n = 9)
,因为pmap
使用...
来收集其他参数以传递到.f
。 - Jake Kaupp