your programing

여러 벡터에서 공통 요소를 찾는 방법은 무엇입니까?

lovepro 2023. 6. 11. 21:27
반응형

여러 벡터에서 공통 요소를 찾는 방법은 무엇입니까?

여러 벡터에서 공통 요소를 찾는 방법을 알려줄 수 있는 사람이 있습니까?

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)

언급URL : https://stackoverflow.com/questions/3695677/how-to-find-common-elements-from-multiple-vectors

반응형