差集合的なにか![Add Star Add Star](http://s.hatena.ne.jp/images/add.gif)
![wakuteka](http://s.hatena.ne.jp/images/star.gif)
![Rion778](http://s.hatena.ne.jp/images/star.gif)
集合は定義から、同じ要素は含まないわけですが、そうゆうのも許して欲しいときがある。こういう2つのベクトルがあったとき
x <- c("a", "b", "c", "a", "a", "b")
y <- c("c", "d", "c")
Rでの差集合演算を使うともちろんこうなる。
> setdiff(x, y)
[1] "a" "b"
定義からいくともちろん正しいのだが
c("a", "b", "a", "a", "b")
で返ってきて欲しい場合もある。というわけで、ごねくりまわしてなんとかしてみた。頭が悪いので、きっともっとよい方法があるに違いない。まる。
大域変数への代入があるのであまりよくないが以下のようにすれば?
> lapply(y, function(i) x <<- x[!(x %in% i)])[[length(y)]]
[1] "a" "b" "a" "a" "b"