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 respuesta

Digamos 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

Respuestas a la pregunta(2)

Su respuesta a la pregunta