【发布时间】:2023-03-30 16:25:02
【问题描述】:
我在调试代码时遇到问题。代码如下所示。 所以,在我的 lapply 函数中出现了问题。为了确定错误,我将三个参数写入全局变量。但是发生了以下事情:列表长度(在第一次打印中)始终为 3(应该是),在第二次打印中,foo 的长度也为 3。完美。 在这些行之后,出现错误,执行中断,然后当我查看我的变量 foo 时,它的长度为 4,并且只有 vl 变量出现在 foo 中。 我在代码中的其他地方没有其他 foo 分配,这也是我正在使用的唯一全局变量。
我错过了什么?我无法解释自己的这种行为。
致以最诚挚的问候,
马里奥
.evalModel = function(model, vl, params){
print(length(list(model, vl, params)))
foo<<-list(model, vl, params)
print(length(foo))
modelPerformance = lapply(model, function(x){
ruleResults = vector(mode="list", length = length(x) )
for(i in 1:length(x)){
if(class(x[[i]]) == "rule"){
ruleResults[[i]] = .evalRule(x[[i]] , vl, params)
} else{
ruleResults[[i]] = .evalRule(x[[i]]$rule , vl, params)
}
}
ruleResults
})
class(modelPerformance) = "GP-Model"
return(modelPerformance)
}
【问题讨论】:
标签: r global-variables