문제

아래의 샘플 데이터에서, 나는 적어도 3 개월 연속 상태에 대한 상태를 발생하는 경우, ID 및 SEQ에 의한 계정을 식별하려고 노력하고 있습니다.나는 잠시 동안 이것을 망쳐 놓았으며, 나는 그것을 다루는 방법을 확실히하지 않습니다.

샘플 데이터 :

ID     SEQ   STATUS_DATE
11111    1   01/01/2014
11111    1   02/10/2014
11111    1   03/15/2014
11111    1   05/01/2014
11111    2   01/30/2014
22222    1   06/20/2014
22222    1   07/15/2014
22222    1   07/16/2014
22222    1   08/01/2014
22222    2   02/01/2014
22222    2   09/10/2014
.

내가 반환 해야하는 것 :

ID      SEQ   STATUS_DATE
11111    1    01/01/2014
11111    1    02/10/2014
11111    1    03/15/2014
22222    1    06/20/2014
22222    1    07/15/2014
22222    1    07/16/2014
22222    1    08/01/2014
.

어떤 도움도 감사 할 것입니다.

도움이 되었습니까?

해결책

여기에 하나의 방법이 있습니다.

data have;
input ID     SEQ   STATUS_DATE $12.;
datalines;
11111    1   01/01/2014
11111    1   02/10/2014
11111    1   03/15/2014
11111    1   05/01/2014
11111    2   01/30/2014
22222    1   06/20/2014
22222    1   07/15/2014
22222    1   07/16/2014
22222    1   08/01/2014
22222    2   02/01/2014
22222    2   09/10/2014
;
run;

data grouped (keep = id seq status_date group) groups (keep = group2);
    set have;
    sasdate = input(status_date, mmddyy12.);
    month = month(sasdate);
    year = year(sasdate);
    pdate = intnx('month', sasdate, -1);
    if lag(year) = year(sasdate) and lag(month) = month(sasdate) then group+0;
    else if lag(year) = year(pdate) and lag(month) = month(pdate) then count+1;
    else do;
        group+1;
        count = 0;
    end;
    if count = 0 and lag(count) > 1 then do;
        group2 = group-1;
        output groups;
    end;
    output grouped;
run;

data want (keep = id seq status_date);
    merge grouped groups (in=a rename=(group2=group));
    by group;
    if a;
run;
.

기본적으로 나는 그들이 연속적으로 동일한 그룹의 숫자를 관찰 한 다음 2 개 이상의 관찰이있는 그룹 수 그룹이있는 데이터 세트를 생성합니다.그런 다음 두 개의 데이터 세트를 병합하고 두 번째 데이터 세트에있는 관찰자만이 2 개 이상의 관찰이있는 것입니다.

다른 팁

어때요.그러나 sort 을 원하는 것을 원할 수 있습니다.

data want;
    do _n_ = 1 by 1 until(last.id);
    set survey;
    by id;
    if _n_ <=3 then output;
    end;
run;
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top