본문 바로가기
R

[R. 아르] 리스트에 없는 항목만 추출하기 (차집합, setdiff())

by LightBlogger 2016. 9. 23.

지난 번 2016/09/08 - [R] - [R.아르] R에서 엑셀의 vlookup() 기능 사용하기 에서 본 merge()는


일종의 '교집합'을 구하는 함수로 생각해도 되겠다.


이번엔 차집합을 구하는 함수를 알아보자.


예를들어 다음과 같은 x, y에서




x에만 있고 y에는 없는 것을 고르려면


setdiff() 함수를 사용하면 된다.



반대로 y에만 있고 x에는 없는 것을 고르려면


순서를 반대로 사용한다.



내친 김에 합집합, 교집합, 부분집합도 알아보자.


합집합은 union() 함수를 사용한다.



사용하는 순서에 따라 원소의 배열이 다르며


자동으로 정렬되지는 않는다.


정렬하려면 sort()를 사용하자.



교집합은 intersect()를 사용한다.



한 집합이 다른 집합의 부분집합인지도 알 수 있다.


예를들어 다음과 같은 x, y의 경우



is.element() 함수를 쓰면 x의 원소 4개가 모두 y에 속한다고 알려준다.



물론 반대로 쓰면 속하지 않는 것을 False로 표시해 준다.


부분집합인지 여부를 한 번에 보고싶다면 all() 함수를 사용하자.


all() 함수는 괄호 안의 벡터가 모두 TRUE인지, 하나라도 FALSE가 있는지 알려주는 함수다.




마지막으로, 어떤 두 집합이 완전히 동일한지 알고 싶다면


setequal()을 사용한다.



반응형

댓글