Я хочу foreach
вернуть две матрицы в список каждой итерации. Это возвращаемое значение должно сочетаться с предыдущими итерациями путем передачи пользовательской функции acomb()
в параметр .combine
. Возвращенный список, содержащий матрицы, не следует просто комбинировать, чтобы сформировать более длинный список, используя .combine="list"
или .combine="c"
. Вместо этого две матрицы должны быть уложены отдельно для создания двух трехмерных массивов.foreach: Как совместить две матрицы в списке на нескольких итерациях?
Следующий код работает, как ожидалось, если я выполнить две итерации (1:2
), но я получаю сообщение об ошибке, если я увеличить число итераций:
require("foreach")
require("abind")
acomb <- function(old, new) list(abind(old$a, new$a, along=3), abind(old$b, new$b, along=3))
foreach(1:3, .combine=acomb, .multicombine=TRUE) %do% {
list(a=cbind(c(1,2),c(3,4)), b=cbind(c(1,2),c(3,4),c(5,6)))
}
Возвращенный ошибки:
Error in { : unused Argument (result.3)
извините, 'require (" foreach ")' отсутствовал. теперь код должен воспроизводить ошибку. – woobert