R 에서 두 배열의 성분 비교하기

R 에서 두 배열의 성분 비교하기

How to compare array in r

개요

R 은 데이터의 형태, 구조보단 그 내용에 관심이 많은 분야에서 많이 쓰이므로 그 비교 역시 유용하다.

포함관계

20190109\_120126.png (전혀 중요하지는 않지만, 예제에서 A는 삼각수 $\displaystyle {{n(n+1)} \over {2}}$ 이고 B는 사각수 $m^2$ 를 나타낸다.)

이항연산자 %in% 을 사용해 두 배열을 비교해보면 A의 성분 중 B에도 속하는 성분에 대해 참, 그렇지 않으면 거짓으로 반환해준다. 다음과 같이 문자열을 나누는 함수 strsplit() 과 응용하면 글자나 단어를 검색하는데 쓸 수도 있다.

20190109\_124542.png

교집합과 배타적 합집합

20190109\_124805.png

intersect() 함수와 setdiff() 함수는 각각 $A \cap B$ 과 $A \triangle B = ( A \cup B ) \setminus ( A \cap B )$ 을 구해준다.(마찬가지로 전혀 중요하지는 않지만, $1$ 과 $36$ 은 삼각수이면서 사각수임을 알 수 있다.)

코드

A<-((1:14)*(2:15))/2; A
B<-(1:10)^2; B
 
A %in% B
 
c("은") %in% strsplit("달변은 은이요 침묵은 금이다","")[[1]]
 
intersect(A,B)
 
setdiff(A,B)
댓글