Je voudrais convertir un pour un cycle dans une opération plus rapide telle qu'appliquer.convertir un pour cycle en R
Voici mon code
for(a in 1:dim(k)[1]){
for(b in 1:dim(k)[2]){
if((k[a,b,1,1]==0) & (k[a,b,1,2]==0) & (k[a,b,1,3]==0)){
k[a,b,1,1]<-1
k[a,b,1,2]<-1
k[a,b,1,3]<-1
}
}
}
Il est un code simple qui effectue une vérification sur chaque élément du tableau multidimensionnel k et si les trois éléments sont les mêmes et égale à 0, il affecte la valeur 1.
Existe-t-il un moyen de le rendre plus rapide? La matrice k a 1 444 000 éléments et cela prend trop de temps pour l'exécuter. Quelqu'un peut-il aider?
Merci
Veuillez fournir un exemple * reproductible *. –
ma matrice k est vraiment grande, mais imaginez juste qu'elle pourrait être définie comme suit 'k <-array (c (1,1,1,0,2,2,2,0,3,3,3,0), dim = c (2,2,3)) ' –
Collez simplement' dput (head (k)) 'ou, si cela est encore trop grand, affinez les dimensions pour inclure' k [c (1,2), c (1,2), 1, c (1: 3)] '. – LAP