Voila mon problème : J'ai trois vecteurs organisé comme suit:
data<-c(3,2,1,4,1,5,2,4,7,3,5,2,3,6,2)
fluo<-c(1,1,0,0,NA,1,1,0,0,NA,1,1,0,0,NA)
chan<-c("chan_1","chan_1","chan_1","chan_1","chan_1","chan_2","chan_2","chan_2","chan_2","chan_2","chan_3","chan_3","chan_3","chan_3","chan_3").
Je souhaiterais soustraire la valeur "data" qui a pour "fluo" NA aux autres valeurs de data et par "chan".
Pour cela j'ai créer la fonction suivante, puis j'applique la fonction tapply
Code : Tout sélectionner
sous<-function(x){
reslt=x-x[is.na(fluo)==T]
return(reslt)
}
tapply(data,chan,sous)
Et voila ce que me renvoie R
Code : Tout sélectionner
$chan_1
[1] 2 NA NA 3 NA
$chan_2
[1] 2 NA NA 4 NA
$chan_3
[1] 3 NA NA 4 NA
Warning messages:
1: In x - x[is.na(fluo) == T] :
la taille d'un objet plus long n'est pas multiple de la taille d'un objet plus court
2: In x - x[is.na(fluo) == T] :
la taille d'un objet plus long n'est pas multiple de la taille d'un objet plus court
3: In x - x[is.na(fluo) == T] :
la taille d'un objet plus long n'est pas multiple de la taille d'un objet plus court
>
En fait, ça semble bon, juste que je ne comprend pas pourquoi pour certaine valeur, il me renvoie des NA.
Par avance, merci.
Stéphane