因此,我目前有几个函数,我要修改在函数外部创建的矩阵,以便将其用作函数内部发生的事情的计数变量。该矩阵名为cost_counter,当某些事件在多个函数内部发生时,我想添加该矩阵。但是,我希望该解决方案仍然能够在foreach()中使用并且可并行化。
我知道不推荐使用<<-,但是我不知道如何使用Assign()修改现有矩阵。示例代码如下。我一开始就定义了变量cost_counter。下面的功能可以运行更长的时间,但是我仅将第一部分作为例子来说明正在发生的事情。
cost_counter <<- matrix(0,nrow = 2, ncol = 12*15)
I0 <- function(){
if (screen[i] == 1){
cost_counter[2,ages[i]] <<- 1 + cost_counter[2,ages[i]] + 1
if(HIV[i] == 1){
if(ages[i] > 35){
if(pv[(i-min_i+1),1] < (1-specP3)){
cost_counter[1,ages[i]] <<- cost_counter[1,ages[i]] + 1
if(contact[i] == 1){return(c(5,0))}
}
}
当我运行时,错误消息只是说 “ cost_counter [2,年龄[i]]错误<<-cost_counter [2,年龄[i]] + 1: 找不到对象“ cost_counter””
我希望能够修改矩阵并使其被识别。
任何帮助将不胜感激。谢谢!
答案 0 :(得分:0)
在函数的最后,使用以下命令将函数的矩阵重新分配给全局env:
cost_counter <<- cost_counter