R 에서 두 배열의 성분 비교하기
개요
R 은 데이터의 형태, 구조보단 그 내용에 관심이 많은 분야에서 많이 쓰이므로 그 비교 역시 유용하다.
포함관계
(전혀 중요하지는 않지만, 예제에서 A는 삼각수 $\displaystyle {{n(n+1)} \over {2}}$ 이고 B는 사각수 $m^2$ 를 나타낸다.)
이항연산자 %in%
을 사용해 두 배열을 비교해보면 A의 성분 중 B에도 속하는 성분에 대해 참, 그렇지 않으면 거짓으로 반환해준다. 다음과 같이 문자열을 나누는 함수 strsplit() 과 응용하면 글자나 단어를 검색하는데 쓸 수도 있다.
교집합과 배타적 합집합
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)