次の実験を検討してください。
Rgames> oof<-c(6,7,8,0,10)
Rgames> badoof<-vector()
Rgames> oof[badoof]
numeric(0)
Rgames> oof[-badoof]
numeric(0)
Rgames> oof[-0]
numeric(0)
Rgames> oof[-10]
[1]  6  7  8  0 10
Rgames> oof[-c(10,0)]
[1]  6  7  8  0 10
Rgames> oof[!(1:length(oof)%in% c(badoof) )]
[1]  6  7  8  0 10
「ゼロと混合できるのは負の整数のみ」がサブセット化の制限であることは知っています。私には明らかではない部分は、両方が何も返さない理由oof[badoof]ですoof[-badoof]。ここでの背景は、不良データを検索してデータのベクトルから削除する関数を持っていることです。悪いアイテムが見つからなかった (つまりbadoof、要素がない) ケースを個別に、または if/else を介して処理する必要がないようにしたいと考えていました。上記の最後の例は動作しますが、インデックス「-badof」構造を受け入れないのは%in%なぜでしょうか。R
編集:Hong Ooiの答えに照らして、私も尋ねるべきです:[]指定されたインデックスの実際の値を変更するのではなく、内部で負符号を使用することは実際には「NOT」操作ではないでしょうか?