본문 바로가기
데이터 분석/데이터 전처리

R전처리 - n건 전의 데이터 얻기

by BLOSSOMED_IN 2021. 2. 22.

데이터셋은 호텔 예약 레코드를 사용합니다. 예약 테이블의 모든 행에 고객이 이전에 예약했던 두 번의 예약 금액 정보를 첨부합시다. 예약 정보가 없으면 없음으로 표시합니다.

 

R로 전처리하기

R에서도 lag() 함수가 제공됩니다. join() 함수를 사용할 필요는 없습니다.

 

reserve_tb %>%

  •  group_by를 사용하여 customer_id로 데이터를 그룹화한다.

group_by(customer_id) %>%

  • # LAG 함수를 사용하여 두 건 이전의 total_price를 before_price로 구한다.
  • # LAG 함수로 참조할 그룹의 데이터를 reserve_datetime이 오래된 순서로 정렬한다.

mutate(befroe_price = lag(total_price, n =2,

                                                       order_by = reserve_datetime, default = NA))

 

R에서 lag() 함수의 반대인 lead() 함수(n건 뒤의 값을 구하는 함수)도 제공됩니다. 매개변수에는 참조할 열 이름과 n을 전달합니다. 데이터 정렬 순서는 함수의 매개변수로 order_by에 열 이름을 지정할 수 있습니다. 미리 group_by로 정렬할 그룹을 지정해 두어야 합니다. lag함수의 default 매개변수에는 데이터가 없을 경우의 값을 지정할 수 있습니다.

댓글