0

我有一个非常大但与此非常相似的数据框:

df <- data.frame(Group = rep(c('A', 'B', 'C', 'D'), 50),
                 Number = sample(1:100, 200, replace = T))

Group   Number
A   52
B   74
C   22
D   90
A   7
B   93
C   50
D   10
A   31
B   19

我有另一个名为“remove”的数据框,如下所示:

>remove
 Group  Number
    A   52
    C   22
    B   93
    D   10

如何对 df 数据进行子集化,以便排除“删除”中具有 Group 和 Number 值的所有行以获取以下数据框?该文件非常大,因此我无法手动输入要排除的值。期望的输出:

Group   Number
B   74
D   90
A   7
C   50
A   31
B   19

谢谢!

4

2 回答 2

7

你可以这样做%in%

df <- df[!(df$Number %in% remove$Number),]

%in%TRUE如果df$Number在向量中,将返回remove。因为我们想要补码,所以我们先用 否定集合!

于 2013-11-06T17:20:10.697 回答
0

对于更复杂的排除,您可以在两个数据帧(即组+编号)中创建一个唯一列,并按照 Christopher 描述的方法寻求排除该列。

于 2016-10-20T06:54:47.193 回答