Обложка канала

R4marketing | канал Алексея Селезнёва | Язык R

Автор канала Алексей Селезнёв, руководитель отдела аналитики в Netpeak, автор R пакетов: ryandexdirect, rfacebookstat и др. В канале публикуются статьи, доклады, новости, заметки по языку R.

R4marketing | канал Алексея Селезнёва | Язык R

4 года назад
Открыть в
​​Быстрое сравнение пары объектов в 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