gpt4 book ai didi

r - 通过插入与旧行不同的新行来更新 data.table

转载 作者:行者123 更新时间:2023-12-02 06:52:50 25 4
gpt4 key购买 nike

我有两个 data.table(dt1 & dt2)。 dt1 是过去的产品数据,dt2 是现在的产品数据。我想创建第三个 data.table,仅当产品特征(级别或颜色)不同或产品本身不同时,才将新行从 dt2 插入到 dt1。

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
')

我的最终 data.table(dt3) 应该有以下更改:A 和 C 在 dt2 中都不同于 dt1,这就是为什么来自 dt2 的新(不同)行与来自 d​​t1 的所有行一起插入到最终表中。 G 是 dt1 中没有的全新产品,这就是它进入最终表格的原因。

    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

我试过:

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

最佳答案

你可以堆叠和统一化:

unique(rbind(dt1, dt2), by=c("Product", "Level", "Color"))

关于r - 通过插入与旧行不同的新行来更新 data.table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39398135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com