除非条目已存在,否则在 R 中组合数据帧
Combine data frames in R unless entry already exists
我有一个大型数据框 A,其中仅包含几周内不同商品的销售数据,并且没有提及没有销售的那几周。因此,我创建了第二个数据框 B,其中我包含了销售额设置为 0 的所有周。我现在想将 B 添加到 A,但不是 A 已经提到销售的那几周。我希望通过添加组合变量来做到这一点,但似乎无法找到一种快速的方法来做到这一点。
所以我有例如
A Week ID Sales Combination B Week ID Sales Combination
1 X 5 1_X 1 X 0 1_X
2 X 6 2_X 2 X 0 2_X
5 X 5 5_X 3 X 0 3_X
6 X 4 6_X 4 X 0 4_X
1 Y 2 1_Y 5 X 0 5_X
3 Y 2 3_Y 6 X 0 6_X
5 Y 2 5_Y 1 Y 0 1_Y
2 Y 0 2_Y
3 Y 0 3_Y
4 Y 0 4_Y
5 Y 0 5_Y
而我想要的是这个
Week ID Sales Combination
1 X 5 1_X
2 X 6 2_X
3 X 0 3_X
4 X 0 4_X
5 X 5 5_X
6 X 4 6_X
1 Y 2 1_Y
2 Y 0 2_Y
3 Y 2 3_Y
4 Y 0 4_Y
5 Y 2 5_Y
希望这能让它或多或少清楚一些。
让dfA
成为第一个data.frame,让dfB
成为第二个,你可以做到
# Get relevant data together
new_df = rbind(dfA, dfB[dfA$Combination != dfB$Combination,])
# Order the data frame
sorting_index = sort(new_df$Combination, index.return=T)
new_df = new_df[sorting.index$ix,]
或者,您可以将新数据框设置为 dfB
,然后使用 match
从 dfA
获取值并将它们放在正确的位置。
newdataframe <- rbind(A,B,by='week')
newdataframe <- newdataframe[!duplicated(newdataframe$week),]
这应该可以解决
我有一个大型数据框 A,其中仅包含几周内不同商品的销售数据,并且没有提及没有销售的那几周。因此,我创建了第二个数据框 B,其中我包含了销售额设置为 0 的所有周。我现在想将 B 添加到 A,但不是 A 已经提到销售的那几周。我希望通过添加组合变量来做到这一点,但似乎无法找到一种快速的方法来做到这一点。
所以我有例如
A Week ID Sales Combination B Week ID Sales Combination
1 X 5 1_X 1 X 0 1_X
2 X 6 2_X 2 X 0 2_X
5 X 5 5_X 3 X 0 3_X
6 X 4 6_X 4 X 0 4_X
1 Y 2 1_Y 5 X 0 5_X
3 Y 2 3_Y 6 X 0 6_X
5 Y 2 5_Y 1 Y 0 1_Y
2 Y 0 2_Y
3 Y 0 3_Y
4 Y 0 4_Y
5 Y 0 5_Y
而我想要的是这个
Week ID Sales Combination
1 X 5 1_X
2 X 6 2_X
3 X 0 3_X
4 X 0 4_X
5 X 5 5_X
6 X 4 6_X
1 Y 2 1_Y
2 Y 0 2_Y
3 Y 2 3_Y
4 Y 0 4_Y
5 Y 2 5_Y
希望这能让它或多或少清楚一些。
让dfA
成为第一个data.frame,让dfB
成为第二个,你可以做到
# Get relevant data together
new_df = rbind(dfA, dfB[dfA$Combination != dfB$Combination,])
# Order the data frame
sorting_index = sort(new_df$Combination, index.return=T)
new_df = new_df[sorting.index$ix,]
或者,您可以将新数据框设置为 dfB
,然后使用 match
从 dfA
获取值并将它们放在正确的位置。
newdataframe <- rbind(A,B,by='week')
newdataframe <- newdataframe[!duplicated(newdataframe$week),]
这应该可以解决