算額あれこれ

算額問題をコンピュータで解きます

大域変数への代入

差集合的なにかAdd StarwakutekaRion778

集合は定義から、同じ要素は含まないわけですが、そうゆうのも許して欲しいときがある。こういう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"