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
 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%がvector にあるTRUE場合に返されます。補数が必要なので、まず集合を で否定します。df$Numberremove!

于 2013-11-06T17:20:10.697 に答える
0

より複雑な除外については、両方のデータフレーム (つまり、グループ + 番号) に一意の列を作成し、クリストファーが説明した方法に従ってそれを除外することができます。

于 2016-10-20T06:54:47.193 に答える