我有 2 个非常大的数据框,类似于以下内容:
df1<-data.frame(DS.ID=c(123,214,543,325,123,214),OP.ID=c("xxab","xxac","xxad","xxae","xxaf","xxaq"),P.ID=c("AAC","JGK","DIF","ADL","AAC","JGR"))
> df1
DS.ID OP.ID P.ID
1 123 xxab AAC
2 214 xxac JGK
3 543 xxad DIF
4 325 xxae ADL
5 123 xxaf AAC
6 214 xxaq JGR
df2<-data.frame(DS.ID=c(123,214,543,325,123,214),OP.ID=c("xxab","xxac","xxad","xxae","xxaf","xxaq"),P.ID=c("AAC","JGK","DIF","ADL","AAC","JGS"))
> df2
DS.ID OP.ID P.ID
1 123 xxab AAC
2 214 xxac JGK
3 543 xxad DIF
4 325 xxae ADL
5 123 xxaf AAC
6 214 xxaq JGS
唯一id是基于DS.ID和OP.ID的组合,所以DS.ID可以重复,但是DS.ID和OP.ID的组合不会。我想找到 P.ID 发生变化的实例。此外,DS.ID 和 OP.ID 的组合不一定在同一行。
在上面的示例中,它将返回第 6 行,因为 P.ID 发生了变化。我想将初始值和最终值都写入数据框。
我有一种感觉,第一步是
rbind.fill(df1,df2)
(.fill
因为在我试图循环的数据框中添加了列)。
编辑:假设还有其他列也具有不同的值。因此,除非您将它们隔离到它们自己的数据框中,否则重复将不起作用。但是,我将对许多列和许多数据帧执行此操作,因此为了速度,我宁愿不采用这种方法。