Jak sprawdzić, czy dwie ramki danych są równe [duplikaty]

To pytanie ma już tutaj odpowiedź:

w odniesieniu do porównania macierzy w R 1 odpowiedź

Powiedzmy, że mam duże zbiory danych w R i chcę tylko wiedzieć, czy dwa z nich są takie same. Używam tego często, gdy eksperymentuję z różnymi algorytmami, aby osiągnąć ten sam rezultat. Na przykład powiedzmy, że mamy następujące zestawy danych:

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

Oto co robię, aby je porównać:

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

Co działa świetnie, gdy zbiory danych nie mają NA:

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

Ale nie tak bardzo, gdy mają NA:

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

W przykładzie łatwo jest odrzucićNA nie stanowi to problemu, ponieważ wiemy, że obie ramki danychsą równy. Problemem jestNA == <anything> plonyNA, więc gdy jeden z zestawów danych maNA, nie ma znaczenia, co ten drugi ma na tej samej pozycji, wynik zawsze będzieNA.

Więc używająctable() porównywanie zestawów danych nie wydaje mi się idealne.Jak mogę lepiej sprawdzić, czy dwie ramki danych są identyczne?

P.S .: Uwaga, to nie jest duplikatR - porównanie kilku zestawów danych, Porównanie 2 zestawów danych w R lubPorównaj zestawy danych w R

questionAnswers(2)

yourAnswerToTheQuestion