【发布时间】:2016-02-24 03:42:17
【问题描述】:
我正在尝试做一些比我下面的示例复杂得多的事情,但基本思想封装在这个示例中:
pass_thru <- function(FUN,params){
n <- length(FUN)
out <- list()
for(i in 1:n){
temp <- get(FUN[i],mode="function")
out[[i]] <- temp(params[[i]])
}
return(out)
}
fun1 <- function(x,y,z){
x+y+z
}
fun2 <- function(l,m,n){
l*m*n
}
FUN = c("fun1","fun2")
params = list(c(x=1,y=2,z=3,
l=4,m=5,n=6))
pass_thru(FUN,params)
在 pass_thru() 中传递和解析 FUN 可以正常工作,但是仅当 params 的每个元素都是单个值(只有一个参数传递给 FUN 的每个函数)时,才能将参数作为列表传递。我不确定如何为 FUN 中的每个函数获取多个参数以传递给适当的 FUN。
我真正想做的是在对 pass_thru() 的调用中将一些参数传递给每个 FUN,并让 pass_thru 的主体计算要传递给 fun1 和 fun2 的其余参数。
我正在尝试为大规模数据分析预先创建一个灵活的架构,因此能够将函数以及任何或所有这些函数的参数传递给其他函数会很有帮助。感谢您对这个问题的任何见解!
【问题讨论】:
标签: r functional-programming dynamic-programming