在循环中定义多个函数:
par <- 1:2 #parameters for functions
qF <- list() #list I will write the functions into
for(i in 1:2){
qF[[i]] <- function(p){qnorm(p, mean = par[i])}
}
我的结果:
>qF
[[1]]
function (p)
{
qnorm(p, mean = par[i])
}
[[2]]
function (p)
{
qnorm(p, mean = par[i])
}
功能是一样的!我希望我的结果是什么:
>qF
[[1]]
function (p)
{
qnorm(p, mean = par[1])
}
[[2]]
function (p)
{
qnorm(p, mean = par[2])
}
有什么办法吗?
最佳答案
你可以这样做:
library(functional)
funcs = lapply(1:2, function(u) Curry(qnorm, mean=u))
funcs[[1]](0.77)
#[1] 1.738847
funcs[[2]](0.77)
#[1] 2.738847
或者如果你不喜欢辛辣的食物:
funcs = lapply(1:2, function(u) function(...) qnorm(..., mean=u))
关于R:在循环中定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31556088/