Supongamos que tengo un vector x<-c(1,2,NA,4,5,NA)
.Diferencias entre vectores _including_ NA
aplico algo de código mitológica a ese vector, lo que resulta en otro vector, y<-c(1,NA,3, 4,10,NA)
Ahora desea conocer en qué posiciones mis dos vectores diferentes, donde cuento dos NA
s como siendo el mismo , y uno NA
y un no NA
(por ejemplo, el segundo elemento de los dos vectores de ejemplo).
Específicamente, para mi ejemplo, me gustaría terminar con un vector que contenga c(2,3,5)
.
Para mi caso de uso, no estoy contento con un vector de variables lógicas, pero obviamente puedo convertir fácilmente (which
), así que lo aceptaré también.
tengo algunas soluciones como:
simplediff<-x!=y
nadiff<-is.na(x)!=is.na(y)
which(simplediff | nadiff)
pero se siente como si estuviera reinventar la rueda. ¿Alguna mejor opción?
parece perfectamente razonable para mí. –
¿Qué es el código mitológico? – James
@James: es como esa vieja caricatura con un montón de ecuaciones horribles en la parte superior de la pizarra, luego la declaración "luego ocurre un milagro", seguido por la ecuación final deseada. –