複数のベクトルから共通の要素を見つける方法を誰かに教えてもらえますか?
a <- c(1,3,5,7,9)
b <- c(3,6,8,9,10)
c <- c(2,3,4,5,7,9)
上記のベクトルから共通の要素を取得したい(例:3と9)
これについてはもっと賢い方法があるかもしれませんが、
intersect(intersect(a,b),c)
仕事をします。
編集:あなたが多くの議論を持っているならば、より賢く、そしてより便利に:
Reduce(intersect, list(a,b,c))
すでに良い答えですが、これを行うには他にもいくつかの方法があります。
unique(c[c%in%a[a%in%b]])
また、
tst <- c(unique(a),unique(b),unique(c))
tst <- tst[duplicated(tst)]
tst[duplicated(tst)]
、、またはunique
の中に繰り返し値がないことがわかっている場合は、明らかに呼び出しを省略できます。a
b
c
intersect_all <- function(a,b,...){
all_data <- c(a,b,...)
require(plyr)
count_data<- length(list(a,b,...))
freq_dist <- count(all_data)
intersect_data <- freq_dist[which(freq_dist$freq==count_data),"x"]
intersect_data
}
intersect_all(a,b,c)
更新編集より単純なコード
intersect_all <- function(a,b,...){
Reduce(intersect, list(a,b,...))
}
intersect_all(a,b,c)