Я хотел бы применить некоторую функцию к соответствующим элементам некоторых матриц (одинакового размера) и вернуть результат каждого приложения, чтобы я мог добавить его к некоторому аккумулятору.Наиболее интуитивный способ сделать это с помощью цикла, но я работаю с большими наборами данных, и циклы занимают слишком много времени.
Я знаю о классе применения apply, но я неЯ уверен, как использовать их для накопления результата каждой итерации.
Вот небольшой пример того, что я пытаюсь сделать.
mat <- matrix(c(0, 1, 2, 3, 2, 9, 5, 1, 1, 1, 0, 0, 5, 5, 2, 0), 4, 4)
mat2 <- matrix(c(1, 1, 3, 1, 6, 2, 9, 2, 0, 1, 3, 2, 0, 1, 2, 1), 4, 4)
mat3 <- matrix(c(0, 4, 6, 1, 0, 4, 3, 8, 9, 1, 3, 0, 9, 9, 8, 8), 4, 4)
some_function <- function(num1, num2, num3) {
return(num1 * num2 + num3)
}
accum <- 0.1
for (i in 1:nrow(mat)) {
for (j in 1:ncol(mat)) {
accum <- accum + log(1 + some_function(mat[i,j], mat2[i,j], mat3[i,j]+10))
}
}
Это дает правильный ответ, но яхотел бы сделать это без петель.Также обратите внимание, что some_function - это просто произвольная функция, которую я привожу в качестве примера.Функция, которую я применяю к своим данным, более сложна.