Cómo verificar si dos marcos de datos son iguales [duplicado]
Esta pregunta ya tiene una respuesta aquí:
con respecto a la comparación de matrices en R 1 respuestaDigamos que tengo grandes conjuntos de datos en R y solo quiero saber si dos de ellos son iguales. Uso esto a menudo cuando estoy experimentando diferentes algoritmos para lograr el mismo resultado. Por ejemplo, digamos que tenemos los siguientes conjuntos de datos:
df1 <- data.frame(num = 1:5, let = letters[1:5])
df2 <- df1
df3 <- data.frame(num = c(1:5, NA), let = letters[1:6])
df4 <- df3
Así que esto es lo que hago para compararlos:
table(x == y, useNA = 'ifany')
Lo que funciona muy bien cuando los conjuntos de datos no tienen NA:
> table(df1 == df2, useNA = 'ifany')
TRUE
10
Pero no tanto cuando tienen NA:
> table(df3 == df4, useNA = 'ifany')
TRUE <NA>
11 1
En el ejemplo, es fácil descartar laNA
como no es un problema ya que sabemos que tanto los marcos de datosson igual. El problema es eseNA == <anything>
rendimientosNA
, así que cada vez que uno de los conjuntos de datos tiene unaNA
, no importa lo que el otro tenga en esa misma posición, el resultado siempre seráNA
.
Así que usandotable()
Para comparar conjuntos de datos no me parece ideal.¿Cómo puedo verificar si dos marcos de datos son idénticos?
P.S .: Tenga en cuenta que esto no es un duplicado deR - comparando varios conjuntos de datos, Comparando 2 conjuntos de datos en R oComparar conjuntos de datos en R