Итак, в настоящее время у меня есть несколько функций, в которых я хочу изменить матрицу, созданную вне функции, чтобы использовать ее в качестве переменной подсчета для вещей, происходящих внутри функции.Матрица называется cost_counter, и я хочу добавить ее, когда определенные события происходят внутри нескольких функций.Тем не менее, я бы хотел, чтобы решение все-таки можно было использовать в foreach () и быть параллелизуемым.
Я знаю, что использование << - не рекомендуется, однако я не могу понять, как использовать assign () для изменения существующей матрицы.Пример кода приведен ниже.Я определил переменную cost_counter в начале.Функция ниже длится дольше, но я просто включаю первую часть для примера того, что происходит.</p>
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, ages [i]] << - cost_counter [2, ages [i]] + 1: объект 'cost_counter' не найден"</p>
Мне бы хотелось иметь возможность изменить матрицу, чтобы она была распознана.
Любая помощь будет принята с благодарностью.Спасибо!