Мне нужно запустить функцию lapply
в activation_status
списке t
раз, чтобы итерация t
функции запоминала результаты итерации t-1
.
Список в основном это двумерный массив, представляющий статус одного элемента i
в течение нескольких периодов t
, который выглядит следующим образом:
n_items <<- 100
n_iterations <<- 10
activation_status <-
lapply(1:n_iterations,
FUN = function(t, bool, i) rep(bool, t),
FALSE, n_items)
Теперь во время каждой итерации t
я случайным образом активируюсь (установите на TRUE
) количество элементов в списке, но я хочу, чтобы все элементы, уже активированные во время t
-1, оставались активными (обратите внимание, что я определяю activation_status
в функции update
, чтобы она была доступна во внутренних функциях).
updateActivation <- function(t) {
activation_status[[t]] <- as.logical(rbinom(n_items, 1, prob = .5))
activation_status[[t]][activation_status[[t-1]] == TRUE] <- TRUE
}
Но затем
lapply(1:n_iterations, updateActivation)
выдает ошибку:
Ошибка в Activation_status [[t - 1]]: попытка выбрать менее одного элемент в get1index
Я знаю, что могу использовать al oop, но мне интересно, если это так:
- Можно сделать что-то подобное с помощью функции
apply
? - сделать это быстрее?