请考虑以下事项:
> df <- data.frame(x = letters[1:15], y = rep(1:3, 5), z = rep(1:5, 3))
> df
x y z
1 a 1 1
2 b 2 2
3 c 3 3
4 d 1 4
5 e 2 5
6 f 3 1
7 g 1 2
8 h 2 3
9 i 3 4
10 j 1 5
11 k 2 1
12 l 3 2
13 m 1 3
14 n 2 4
15 o 3 5
我有另一个数据框df2
,比如说
> df2 <- data.frame(y = c(2, 3), z = c(2, 5))
> df2
y z
1 2 2
2 3 5
我希望使用df
中y
和z
的值来过滤 df2
行。也就是说,输出应该类似于
x y z
1 a 1 1
3 c 3 3
4 d 1 4
5 e 2 5
6 f 3 1
7 g 1 2
8 h 2 3
9 i 3 4
10 j 1 5
11 k 2 1
12 l 3 2
13 m 1 3
14 n 2 4
配对(y, z)
非常重要。我尝试过像
df[!((df$y %in% df2$y) & (df$z %in% df2$z),]
但问题在于:如果我这样做,不仅会对(2, 2)
和(3, 5)
对进行过滤,还会过滤(3, 2)
和(2, 5)
,我不想要发生。
显然,我可以根据这一点连接列和过滤器,但我想知道是否有更好的方法来处理这个问题。