Как проверить, равны ли два фрейма данных [дубликата]

На этот вопрос уже есть ответ здесь:

относительно сравнения матриц в R 1 ответ

Скажем, у меня есть большие наборы данных в R, и я просто хочу знать, являются ли два из них одинаковыми. Я часто использую это, когда экспериментирую с разными алгоритмами для достижения одного и того же результата. Например, скажем, у нас есть следующие наборы данных:

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

Вот что я делаю, чтобы сравнить их:

table(x == y, useNA = 'ifany')

Что прекрасно работает, когда в наборах данных нет NA:

> table(df1 == df2, useNA = 'ifany')
TRUE 
  10 

Но не так много, когда у них есть NA:

> table(df3 == df4, useNA = 'ifany')
TRUE <NA> 
  11    1 

В этом примере легко отклонитьNA как не проблема, так как мы знаем, что оба кадра данныхнаходятся равны. Проблема в том, чтоNA == <anything> доходностьNAпоэтому всякий раз, когда один из наборов данных имеетNA, не имеет значения, что другой имеет на той же позиции, результат всегда будетNA.

Итак, используяtable() сравнивать наборы данных не кажется мне идеальным.Как я могу лучше проверить, идентичны ли два кадра данных?

П.С .: Обратите внимание, это не дубликатR - сравнение нескольких наборов данных, Сравнение 2 наборов данных в R или жеСравнить наборы данных в R

Ответы на вопрос(2)

Ваш ответ на вопрос