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