Как проверить, равны ли два фрейма данных [дубликата]
На этот вопрос уже есть ответ здесь:
относительно сравнения матриц в 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