Итерация по разным измерениям массива - PullRequest
0 голосов
/ 16 апреля 2020

Я новичок в R, и я знаю, что, если это возможно, лучше использовать встроенную функцию вместо l oop и других подобных вещей. Поэтому я хотел бы знать, является ли их способ с помощью функции «apply ()» или других, чтобы сделать следующее l oop.

arr1 <- array(data=rnorm(255,0,1),dim=list(5,5,9))
arr2 <- array(data=apply(arr1,3,function(x)mean(x)),dim=list(9))
var <- array(dim=list(5,5,9))

for(i in 1:9){
    var[,,i] <- arr1[,,i]-arr2[i]
}

Спасибо

"" " "" Изменить "" "" Я изменяю код, чтобы сделать его работоспособным, как предложено, и изменяю "var"

1 Ответ

0 голосов
/ 17 апреля 2020

Одним из решений может быть:

abind:::abind(lapply(1:dim(arr2), function(x) arr1[,,x]-arr2[x]), along = 3)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...