【发布时间】:2012-01-20 21:01:43
【问题描述】:
附样本数据
> df1 <- data.frame(x=c(1,1,2,3), y=c("a","b","a","b"))
> df1
x y
1 1 a
2 1 b
3 2 a
4 3 b
> df2 <- data.frame(x=c(1,3), y=c("a","b"))
> df2
x y
1 1 a
2 3 b
我想从 df1 中删除 df2 的所有值对 (x,y)。我可以在 df2 中的每一行上使用 for 循环来做到这一点,但我确信有一种更好更简单的方法,我现在想不出。我一直在尝试从以下开始做一些事情:
> df1$x %in% df2$x & df1$y %in% df2$y
[1] TRUE TRUE FALSE TRUE
但这不是我想要的,因为 df1[2,] = (1,b) 被拉出以进行删除。非常感谢您的帮助。
【问题讨论】:
-
我刚刚回答了一个相同的问题:stackoverflow.com/questions/8932781/…