누구든지 여러 벡터에서 공통 요소를 찾는 방법을 말해 줄 수 있습니까?
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)