r-仅当某列上的值不重复时才绑定数据帧

  • 本文关键字:数据帧 绑定 r vector dataframe
  • 更新时间 :
  • 英文 :


我有一个示例数据帧,如下所示:

df_1
id     value     value_2
1      1.1545    hello
2      185.11    foo
8      135415    bar

我想把它和这个绑定

df_2
id     value     value_2
3      0.0455    ahh
4      0.11      ehh
1      0.44      ihh

第三行不能被绑定,因为df1中有id 1。

所以应该是

id     value     value_2
1      1.1545    hello
2      185.11    foo
8      135415    bar
3      0.0455    ahh
4      0.11      ehh

这可以通过将数据集放置在list中,然后将rbinddata.table中的rbindlist一起放置,并仅选择不重复的带有"id"的行来完成。如果存在duplicated的"id",则将保留第一个"id"行,并删除其他行。

library(data.table)
rbindlist(list(df_1, df_2))[!duplicated(id)]

上述的一个变体是使用unique

unique(rbindlist(list(df_1, df_2)), by = 'id')

rbind(df_1,df_2[!df_2$id %in% df_1$id,])

最新更新