←
PDF 360 / 520 Invoking Different Functions
→
English · PDF 360
Original PDF page 360
中文 · PDF 360

这会生成更长但更安全的调用:

由于所有参数的长度都相同,将它们存储在一个数据框中是合理的:

params <- tribble( ~mean, ~sd, ~n, 5, 1, 1, 10, 5, 3, -3, 10, 5 ) params %>% pmap(rnorm) #> [[1]] #> [1] 4.68 #> #> [[2]] #> [1] 23.44 12.85 7.28 #> #> [[3]] #> [1] -5.34 -17.66 0.92 6.06 9.02

一旦你的代码变得复杂,我认为数据框是一种好方法,因为它确保每一列都有名称,并且与其他所有列的长度相同。

调用不同的函数

复杂度还有更高的一层——不仅可以改变函数的参数,你还可以改变函数本身:

f <- c("runif", "rnorm", "rpois") param <- list( list(min = -1, max = 1), list(sd = 5), list(lambda = 10) )