Test de valeur sur data.frame avec des NA
Bonjour
Je souhaite tester l'égalité entre des valeurs, sur deux variables qui possèdent des NA.
Le problème est que je n'obtiens pas du tout ce que je veux. Exemple :
Code:
1 2
| X <- data.frame(Id=c(1,2,3,4,5),V1=c(0,0,1,NA,1),V2=c(NA,0,0,1,1))
X[X$V1 != X$V2,] |
Le résultat est le suivant :
Citation:
Id V1 V2
NA NA NA NA
3 3 1 0
NA.1 NA NA NA
Si j'y met un which(...)
Code:
X[which(X$V1 != X$V2),]
J'obtiens :
Citation:
Id V1 V2
3 3 1 0
Ce n'est pas non plus ce que je désire. Je voudrais avoir
Citation:
Id V1 V2
1 1 0 NA
3 3 1 0
4 4 NA 1
Bien sur, on peut aussi ajouter des contrôles sur les NA, de la façon suivante :
Code:
X[which( (is.na(X$V1) & !is.na(X$V2)) | (is.na(X$V2) & !is.na(X$V1)) | (X$V1 != X$V2)),]
Mais n'y a-t-il pas plus simple ?