Я использовал dplyr::all_equal
, чтобы попытаться найти различия между наборами данных. Я не всегда понимаю результат, когда наборы данных не равны.
Я сгенерировал несколько небольших кусочков, чтобы попытаться выявить смысл выводов, легко сравнивая их, но разные выводы меня смущают. Я посмотрел на документацию, и она не дает удовлетворительного объяснения для меня, потому что нет никаких подробностей, объясняющих, как результат объясняет различия помимо позиций. Примеры в документации на самом деле также не охватывают этот случай.
library(tidyverse)
set.seed(123)
df1 <- as_tibble(rpois(4, 2))
df2 <- as_tibble(rpois(4, 2))
df3 <- as_tibble(rpois(4, 2))
df4 <- as_tibble(rpois(4, 2))
df1
#> # A tibble: 4 x 1
#> value
#> <int>
#> 1 1
#> 2 3
#> 3 2
#> 4 4
df2
#> # A tibble: 4 x 1
#> value
#> <int>
#> 1 4
#> 2 0
#> 3 2
#> 4 4
df3
#> # A tibble: 4 x 1
#> value
#> <int>
#> 1 2
#> 2 2
#> 3 5
#> 4 2
df4
#> # A tibble: 4 x 1
#> value
#> <int>
#> 1 3
#> 2 2
#> 3 0
#> 4 4
all_equal(df1, df2)
#> [1] "Rows in x but not y: 1, 2. Rows in y but not x: 2. Rows with difference occurences in x and y: 4"
all_equal(df1, df4)
#> [1] "Rows in x but not y: 1. Rows in y but not x: 3. "
all_equal(df1, df3)
#> [1] "Rows in x but not y: 1, 2, 4. Rows in y but not x: 3. Rows with difference occurences in x and y: 3"
all_equal(df2, df3)
#> [1] "Rows in x but not y: 2, 1. Rows in y but not x: 3. Rows with difference occurences in x and y: 3"
all_equal(df2, df4)
#> [1] "Rows in y but not x: 1. Rows with difference occurences in x and y: 1"
Создано в 2019-06-26 пакетом представ. (v0.2.1)
Если бы кто-то спросил меня «Сколько наблюдений отличаются между двумя наборами», основываясь на вышеприведенных выходных данных, мой ответ был бы наибольшим числом строк, возвращаемых «Строки в __, но не __: число». Так, например, я бы сказал:
«Количество наблюдений между df1
и df3
, которые отличаются, равно 3».
Это правильная идея? Кроме того, я не знаю, как интерпретировать «строки с различиями в части x и y: число», поскольку в all_equal(df1, df2)
между наборами есть два разных наблюдения, но в строке 4 записи одинаковы.