특정 사용자 모두가 구매한 물품 목록을 뽑아보려 한다. 필터링을 어떻게 활용하는지 알아보자.
※ preprocessing_purchase_list.csv 다운받기 [클릭]
데이터 준비
다음과 같이 데이터가 있다고 하자.
● item
: 상품명
● id
: 고객 식별자
1 | df = read.csv("preprocessing_purchase_list.csv") |
예를 들어 대상 고객 식별자가 1과 3이라고 했을 때 해당 고객이 구매한 상품은 다음과 같이 확인할 수 있다.
1 | id_target = c(1, 3) |
사실상 대상 고객이 구매한 상품을 골라내는 것이라면 여기서 끝났겠지만, 여기서는 대상 고객 모두가 구매한 상품 목록을 추출하는 것이기 때문에 코드를 조금 더 작성해보겠다.
대상 고객 식별자가 2개이기 때문에 “item” 변수가 2번 집계된 경우는 대상 고객이 모두 구매한 상품이라고 할 수 있다.
1 | table(df[df$id %in% id_target, "item"]) |
이제 필요한 것은 “b”와 “c” 상품이다. 이를 뽑아내기 위해서 코드를 길게 쓸 수도 있지만 한줄로 끝내는 코드는 다음과 같다.
1 | unique(df$item)[table(df[df$id %in% id_target, "item"]) == length(id_target)] |