Ajouter des valeurs manquantes dans une matrice : logiciel R

Fermé
Bloum - 29 oct. 2014 à 15:41
Bonjour,

Je connais un problème de programmation avec le logiciel R. Je désire ajouter des valeurs manquantes dans une matrice Y avec certaines règles. Par exemple, ma matrice Y à la forme suivante de taille nxr :
[,1] [,2] [,3] [,4]
[1,] 2 3 2 2
[2,] 3 2 2 3
[3,] 2 1 3 1
[4,] 2 2 2 2
[5,] 2 2 2 2
[6,] 3 3 2 2
[7,] 1 1 1 1
[8,] 1 1 2 2
[9,] 1 1 1 1
[10,] 1 2 1 1

De plus, j'ai un vecteur sample.NA de taille 1xn :
[1] 2 0 1 1 0 0 0 0 2 0

En fonction de mon vecteur sample.NA, je désire ajouter des valeurs manquantes dans la matrice Y. L'idée est la suivante : pour l'individu 1, je veux remplacer les deux premières observations par des NA; pour le 2e individu je ne remplace rien du tout; pour le 3e individu je remplace la première valeur par un NA, etc.
MA nouvelle matrice devrait donc avoir la forme suivante :
[,1] [,2] [,3] [,4]
[1,] NA NA 2 2
[2,] 3 2 2 3
[3,] NA 1 3 1
[4,] NA 2 2 2
[5,] 2 2 2 2
[6,] 3 3 2 2
[7,] 1 1 1 1
[8,] 1 1 2 2
[9,] NA NA 1 1
[10,] 1 2 1 1

Je désire utiliser la fonction apply pour améliorer la vitesse de calcul mais cela ne fonctionne pas.
Voilà mon programme pour le moment:
adoc = function(Y,m)
{
if(m>0) Y[1:m] = NA
return(Y)
}
Y = apply(Y,1,adoc,sample.NA)


Merci pour votre aide!!!
L.K.