我有一个示例数据帧,如下所示:
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
中,然后将rbind
与data.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,])