将用户定义的函数存储在for循环中时,存在将用户定义的函数存储在R列表中的问题。将用户定义在for循环中的列表中
我必须根据一些参数定义一些特定于细分的函数,所以我创建函数并将它们放在循环中使用for-loop循环的列表中。问题是我在结果列表中的所有地方都有相同的功能。
的代码看起来是这样的:
n <- 100
segmenty <- 1:n
segment_functions <- list()
for (i in segmenty){
segment_functions[[i]] <- function(){return(i)}
}
当我运行的代码是什么我得到的是所有索引相同的功能(在循环最后创建):
## for all k
segment_functions[[k]]()
[1] 100
没有当我手动将这些功能放在列表上时出现问题
segment_functions[[1]] <- function(){return(1)}
segment_functions[[2]] <- function(){return(2)}
segment_functions[[3]] <- function(){return(3)}
工作得很好。
我很荣幸不知道有什么问题。你能帮忙吗?
您几乎完全重新创建了'force'帮助页面底部的示例,该示例显示了如何使其按预期工作 – Miff