Estoy tratando de identificar los valores en un marco de datos que no coinciden, pero no puedo encontrar la manera de hacerlo.¿Cómo puedo seleccionar filas de un marco de datos que no coinciden?
# make data frame
a <- data.frame(x = c(1,2,3,4))
b <- data.frame(y = c(1,2,3,4,5,6))
# select only values from b that are not in 'a'
# attempt 1:
results1 <- b$y[ !a$x ]
# attempt 2:
results2 <- b[b$y != a$x,]
Si a = c(1,2,3)
esto funciona, como a
es un múltiplo de b
. Sin embargo, estoy intentando simplemente seleccionar todos los valores del marco de datos y
, que no están en x
, y no entiendo qué función usar.
Gracias @Chase, paso algún tiempo tratando de averiguar cuál era la negación del operador ''% en%, pero podría no resolverlo. Esta respuesta también es útil, ya que cuidadosamente subconjuntos de los datos. – djq
@celenius - el operador '% in%' devuelve un vector lógico que nos dice si hay una coincidencia entre el primer operador y el segundo. '(b $ y% en% a $ x) [1] VERDADERO VERDADERO VERDADERO VERDADERO FALSO FALSO'. El '!' Implica la negación, por lo que devolverá '! (B $ y% en% a $ x) [1] FALSO FALSO FALSO FALSO VERDADERO VERDADERO'. ¿Eso ayuda a explicar las cosas? – Chase