我有两个数据框。我需要删除彼此不匹配的ID。例如,我需要删除a中的id 4,7,10的数据和b中的id 5,12,15。我需要从两个数据框中删除数据。
一个:
id name
1 1 A
2 2 B
3 4 D
4 7 G
5 8 H
6 9 I
7 10 J
8 13 M
B:
rating id name
1 3 1 A
2 4 2 B
3 4 5 E
4 5 8 H
5 2 9 I
6 1 12 L
7 3 13 M
8 4 15 O
更新
c:
rating id name
1 4 2 B
2 2 9 I
3 3 13 M
另一个问题,如果所有C的数据都匹配B,并且我想删除B中的C数据,那么B将只有id 1,5,8,12,15。
答案 0 :(得分:1)
我们需要inner_join
library(dplyr)
inner_join(a, b['id'], by = 'id')
答案 1 :(得分:0)
df1 <- read.table(text = "id name
1 1 A
2 2 B
3 4 D
4 7 G
5 8 H
6 9 I
7 10 J
8 13 M", header = T)
df2 <- read.table(text = "id name
1 1 A
2 2 B
3 5 E
4 8 H
5 9 I
6 12 L
7 13 M
8 15 O", header = T)
ids <- merge(x = df1, y = df2, by = "id", all = F )$id
df1 <- df1[df1$id %in% ids,]
df2 <- df2[df2$id %in% ids,]