我有一个参数值的数据框架,在R中,所以例如
scenarios <- data.frame(max_day=c(100,200,300),max_cases=c(100,100,100),scale=c(2,3,2))
和我还有一个函数scenario_sim,它有输入max_day, max_cases, k, no_sims和scale。我首先使用偏函数
部分填充函数输入sim_with_params <- purrr::partial(scenario_sim, k=0, no_sims=5)
然后,我想使用数据帧的每一行作为剩余的输入来应用该函数。我尝试使用地图,但不确定如何传递剩余的参数,因为它们不一定按顺序,而且部分填写的变化。
results <- map(scenarios, sim_with_params, ...)
这个例子显然比我使用的实际例子要简单得多。场景_sim函数有很多输入,其中一些有时也被保留为NULL。我将非常感谢一些关于实现这一目标的最佳方法的建议。由于
您可以使用基R函数do.call
和Map
来完成此操作:
do.call(Map, c(f = sim_with_params, scenarios, k=0, no_sims = 5))