2017-11-04 1 views
1

한 고객의 여러 트랜잭션을 단일 레코드로 병합하려고하는 아래 데이터 프레임이 있습니다.동일한 고객에 대해 R로 행 레코드 병합 및 병합

입력 :

ST_DATE ND_DATE LO_NO ACTV_CODE ACTV_AMT AB_NO FEATURE_CODE L_NU  
7/27/16 7/27/16 265  O   15   1  INTEREST  855   
7/27/16 7/27/16 265  O   14   1  INSTALLMENT 855 

예상 출력 : 시도

ST_DATE ND_DATE LO_NO ACTV_CODE ACTV_AMT AB_NO FEATURE_INTEREST FEATURE_INSTALLMENT  L_NU 
7/27/16 7/27/16 265  O   29   1    1   1     855 

는 :

install1 <- install %>% 
    group_by(LO_NO,AB_NO,L_NU) %>% 
    slice(which.min(as.Date(ST_DATE, '%Y/%m/%d'))) %>% 
    slice(which.max(as.Date(ND_DATE, '%Y/%m/%d'))) %>% 
    summarise(ACTV_AMT = sum(ACTV_AMT)) %>% 
    spread(FEATURE_CODE,fill = 0) %>% # confused here on what to put key value pairs so that I can get the above output 

는 사람이 코드를 구현 좀 도와 줄래. 해당 기능 코드가 고객과 관련 지을 수 있지 않은 경우 feature_codes 많은 사람들이 사용할 수 있습니다 그것은해야 fill 0 또는이자 등의 2 same feature_codes 그것이 fill as 2

답변

1

FEATURE_INTEREST에 먼저가 그룹을 사용하고 dcast 사용할 수 있어야 그 달에 두 번이다이있는 경우 집계 values-에게

install1 <- install %>% 
    group_by(LO_NO,AB_NO,L_NU,FEATURE_CODE) %>% 
    summarise(count1= n()) 

library(reshape2) 
final <- dcast(install1, formula = LO_NO + AB_NO + L_NU ~ FEATURE_CODE, fill = 0) 

희망을 확산이

을하는 데 도움이