데이터셋은 호텔 예약 레코드를 사용합니다. 예약 테이블의 모든 행에 고객이 이전에 예약했던 두 번의 예약 금액 정보를 첨부합시다. 예약 정보가 없으면 없음으로 표시합니다.
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 매개변수에는 데이터가 없을 경우의 값을 지정할 수 있습니다.
'데이터 분석 > 데이터 전처리' 카테고리의 다른 글
R전처리 - 과거 데이터에서 정보 얻기 (0) | 2021.02.17 |
---|---|
R전처리 - 조건에 따라 결합할 마스터 테이블 변경 (0) | 2021.02.15 |
R전처리 - 결합 (0) | 2021.02.14 |
R전처리 - 순위계산 (0) | 2021.02.11 |
R전처리 - 최빈값 계산 (0) | 2021.02.09 |
댓글