r-如何删除不同数据帧中具有相同id的行


df1 
id value
1  1    10
2  2    20
3  3    30
4  4    40
5  5    50
df2
id value
1  2    25
2  3    35
I would like to have the following df3:
df3 
id value
1  1    10
2  4    40
3  5    50

换句话说,我只想删除df1和df2之间相同的ID。我怎么能那样做?

您可以使用

df1[!df1$id %in% df2$id, ]
#>   id value
#> 1  1    10
#> 4  4    40
#> 5  5    50

问题的可复制数据

df1 <- data.frame(id = 1:5, value = 10 * (1:5))
df2 <- data.frame(id = 2:3, value = c(25, 35))

我创建了新的伪数据来简化示例。随意应用于其他数据帧

# dummy df
df <- data.table(id = 1:2); df
id
1:  1
2:  2
# dummy df1
df1 <- data.table(id = 2:3); df1
id
1:  2
2:  3
# common rows
x <- intersect(unique(df$id), unique(df1$id))
# exclude
rbind(df, df1)[!id %in% x]
id
1:  1
2:  3

最新更新