Быстрое сравнение пары объектов в R
Пакет waldo изначально был разработан для улучшения сообщений об ошибках в testthat::expect_equal(), но как оказалось функционал пакета оказался полезен сам по себе.
Основная функция пакета waldo::compare() построена поверх базовой all.equal(), но имеет следующие преимущества:
● Сортирует найденные между объектами различия от наиболее важных, к наименее важным;
● Отображение значений атомарных векторов, которые на самом деле различаются;
● Имеет более продвинутый формат выводимых сообщений, выделяя цветом найденное различие.
● waldo выводит в сообщениях образец кода, с помощью которого вы можете получить найденные различия из сравниваемых объектов.
К сожалению telegram не позволяет менять цвет текста, но пример вывода сообщений вы можете увидеть на изображении к этому посту.
Ниже приведу пару примеров из README waldo.
# сравнение векторов
## добавление нового элемента
compare(c("a", "b", "c"), c("a", "b"))
`old`: "a" "b" "c"
`new`: "a" "b"
## удаление элемента
compare(c("a", "b"), c("a", "b", "c"))
`old`: "a" "b"
`new`: "a" "b" "c"
## изменение элемента
compare(c("a", "b", "c"), c("a", "B", "c"))
`old`: "a" "b" "c"
`new`: "a" "B" "c"
# сравнение фреймов
df1 <- data.frame(x = 1:3, y = 3:1)
df2 <- tibble::tibble(rev(df1))
compare(df1, df2)
`class(old)`: "data.frame"
`class(new)`: "tbl_df" "tbl" "data.frame"
`names(old)`: "x" "y"
`names(new)`: "y" "x"
#заметки_по_R