gpt4 book ai didi

r - 如何创建函数向量?

转载 作者:行者123 更新时间:2023-12-03 14:57:43 26 4
gpt4 key购买 nike

我想使用两个 agruments 函数“func”创建一个函数向量,例如这个:

func = function(number, coefficient) {  
return(coefficient*number)
}

这是我创建函数向量的方法:
vector_of_functions = NULL  
for (i in 1:4) {
vector_of_functions = c(vector_of_functions,
function(number) func(number=number, coefficient=i))
}

我的问题是组成我的向量的所有函数都是相同的,即使它们是使用不同的 i 创建的。通过循环。看来它们是使用 i 的最后一个值进行评估的。 (这里是一个全局变量)。

有人有想法吗?

最佳答案

使用 factory functionclosure在它的参数上(它​​将保存循环变量的值):

> # the factory function
> makefunc <- function(x) { x; function() x }
> funclist <- list()
> for (i in 1:3) funclist[[i]] <- makefunc(i)
> funclist[[1]]()
[1] 1
> funclist[[2]]()
[1] 2
>

关于r - 如何创建函数向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12481404/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com