Updating data.table durch Einfügen neuer Zeilen, die sich von alten Zeilen unterscheiden

Ich habe zwei data.table (dt1 & dt2). dt1 sind frühere Produktdaten und dt2 sind aktuelle Produktdaten. Ich möchte eine dritte data.table erstellen, die neue Zeilen von dt2 nur dann in dt1 einfügt, wenn die Produkteigenschaften (Stufe oder Farbe) unterschiedlich sind oder das Produkt selbst unterschiedlich ist.

library(data.table)
dt1 <- fread('
    Product  Level   Color     ReviewDate
    A          0     Blue      9/7/2016
    B          1     Red       9/7/2016
    C          1     Purple    9/7/2016 
    D          2     Blue      9/7/2016
    E          1     Green     9/7/2016 
    F          4     Yellow    9/7/2016  
')
dt2 <- fread('
    Product  Level   Color     ReviewDate
    A          1     Black     9/8/2016
    B          1     Red       9/8/2016
    C          5     White     9/8/2016 
    D          2     Blue      9/8/2016
    E          1     Green     9/8/2016 
    F          4     Yellow    9/8/2016 
    G          3     Orange    9/8/2016 
')

Meine endgültige Datentabelle (dt3) sollte die folgenden Änderungen aufweisen: A und C unterscheiden sich in dt2 von dt1. Aus diesem Grund werden die neuen (anderen) Zeilen von dt2 neben allen Zeilen von dt1 in die endgültige Tabelle eingefügt. G ist ein völlig neues Produkt, das nicht in dt1 enthalten war. Deshalb hat es es in den Final Table geschafft.

    Product  Level   Color     ReviewDate
    A          0     Blue      9/7/2016
    A          1     Black     9/8/2016
    B          1     Red       9/7/2016
    C          1     Purple    9/7/2016 
    C          5     White     9/8/2016
    D          2     Blue      9/7/2016
    E          1     Green     9/7/2016 
    F          4     Yellow    9/7/2016
    G          3     Orange    9/8/2016 

Ich habe versucht

setkey(dt1, Product)
setkey(dt2, Product)
dt3<- dt1[dt2]
setkey(dt3,Product,ReviewDate)

Antworten auf die Frage(6)

Ihre Antwort auf die Frage