複数のベクトル間で共有要素と非共有要素をすべて抽出したい。R:複数のベクトルにまたがる共有されていない要素(交差点と反対側)
は、私はこれらのベクトルを持っていると言う:
set.seed(9)
a <- sample(LETTERS,10,replace=F)
b <- sample(LETTERS,10,replace=F)
c <- sample(LETTERS,10,replace=F)
私は最初のベン図とその重複を探る:
venn.diagram(list('a'=a,'b'=b,'c'=c), filename="test.png", height=1000, width=1000, imagetype="png", units="px")
私はすべてが共有する要素を取得する方法を知っていますベクター(中央3)は、次のようになります。
shared <- Reduce(intersect, list(a,b,c))
length(shared)#3, correct
しかし、グループ間で共有されていない要素を取得するにはどうすればいいですか(5 + 7 + 5 = 17)?
outersect <- function(a,b) unique(c(setdiff(a,b), setdiff(b,a)))
unshared <- Reduce(outersect, list(a,b,c))
length(unshared)#20, I expect 17 (5+7+5)
しかし、比較はペアごとのベースで作られているので数は、間違っています...簡単にこれを行うにはすべてのアイデア:
私の試みは以下の通りですか?
もちろんテーブルを使って!ありがとう、これは本当に直感的です – DaniCee