Rである母集団のdata.frameから除きたい集団data.frameがあって、その結果が欲しいとき
母集団がこんな感じで
population <- data.frame(id=c(1, 2, 3), data=c('a', 'b', 'c')) id data 1 1 a 2 2 b 3 3 c
除きたいのがこんな感じのとき
except <- data.frame(id=c(2), data=c('b')) id data 1 2 b
で、こんな感じで!とinを使えばいいです
population[!(population$id %in% except$id),,drop=FALSE] id data 1 1 a 3 3 c
覚えておいた方がいいのは「drop=FALSE」の部分で、これがないと1列(ベクトル)の時に結果の次元が落ちてしまう(idってのが欲しいのに1 3が返ってくる)
> population <- data.frame(id=c(1, 2, 3)) > except <- data.frame(id=c(2)) > population[!(population$id %in% except$id),] [1] 1 3
1つめのカンマの前で「どういう行を出すか」、2つめのカラムの前で「どういう列を出すか」(今回の場合は何もないので全て)、その後にoptionだと思えば良い