Нахождение различий между двумя фреймами данных в R - PullRequest
0 голосов
/ 01 марта 2019

У меня есть два кадра данных, и вот пример.Фактический файл содержит более 600 строк.

Bay = c(1,1,2,3,4,5)
Row = c(1,1,2,3,1,1)
Facings = c(1,2,1,3,1,1)
Product = c("Wipes", "Scented Wipes", "Bleach", "Cleaner", "Dish Soap", "Plunger")
FirstAisle = data.frame(Bay,Row,Facings,Product)
Product = c("Scented Wipes", "Bleach", "Dish Soap", "Wipes", "Cleaner", "Plunger", "Drainer")
Row = c(1,2,2,1,1,1,2)
Bay = c(1,2,2,1,1,5,1)
Facings = c(1,2,1,1,1,2,1)
SecondAisle = data.frame(Bay,Row,Facings,Product)

Названия продуктов будут одинаковыми для обоих, но они могут быть в разном порядке.Во втором проходе они также могут быть перемещены в другой ряд или отсек.Они могут также иметь различное количество облицовок на втором проходе.Я пытаюсь найти способ определить, какие продукты переместились в разные области и изменилось ли количество облицовок для продукта.

1 Ответ

0 голосов
/ 01 марта 2019
nm = colnames(FirstAisle)
data.frame(lapply(nm, function(x){
    if(is.numeric(FirstAisle[[x]]) & is.numeric(SecondAisle[[x]])){
        FirstAisle[x] - SecondAisle[x]
    }else{
        data.frame(FirstAisle = FirstAisle[[x]],
                   SecondAisle = SecondAisle[[x]])
    }
}))
#  Bay Row Facings    FirstAisle   SecondAisle
#1   0   0       0         Wipes Scented Wipes
#2  -1  -1       0 Scented Wipes        Bleach
#3   0   0       0        Bleach     Dish Soap
#4   2   2       2       Cleaner         Wipes
#5   3   0       0     Dish Soap       Cleaner
#6   0   0      -1       Plunger       Plunger
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...