2016-11-30 3 views
0

이것은 작성한 코드입니다. 3 개의 데이터 단계로 구성됩니다. 처음 2 개는 완벽하게 작동하지만 마지막은 아무 것도하지 않아서 왜 작동하지 못합니다. 예상되는 위의 단계가 내 데이터를 통해 작동하고 레벨 1의 각 첫 번째 인스턴스 1로 설정 플래그를 생성으로 어떤 도움을 아주 많이 SAS 데이터 단계가 예상대로 증가하지 않음

data A.OCT_DEDUPE_LEVEL1; 
    set A.OCT_NOMANLOGOFFERR; 
    by ID_INTERNET level1 notsorted; 
    if first.level1 then journey=1; 
run; 

을 감상 할 수있다. 다음 단계는 다음 다시 데이터를 통해 작업 및 각 세션의 모든 마지막은 또한 국기의 주어진 있는지 확인해야합니다 (아래) '세션'

data A.OCT_SESSIONISE; 
    SET A.OCT_DEDUPE_LEVEL1; 
    IF level1 = 'Step1' and journey = 1 then session+1; 
run; 

이 마지막 단계에 내 데이터와 그룹을 통해 작동 여행 = 1. 일어나는 일은 아무 것도 없으며 각 여행 분야의 마지막 단계는 null입니다.

data A.OCT_DEDUPE_SESSION; 
    set A.OCT_SESSIONISE; 
    if last.session then journey=1; 
run; 

어떤 아이디어가 있습니까?

NOTE: Variable last.session is uninitialized. 

이유 : 사전

답변

2

당신이 당신의 로그를 확인하는 경우에

감사합니다, 그것은 메모를 가지고? 마지막 데이터 단계에서 sessionBY 문이 없으므로 last.session 변수를 사용할 수 없습니다.

나는 조금 궁금해서 왜 이것을 어기는거야? 이는 하나의 데이터 단계에서 수행 할 수 있습니다.

data A.OCT_DEDUPE_LEVEL1; 
    set A.OCT_NOMANLOGOFFERR; 
    by ID_INTERNET level1 notsorted; 
    if first.level1 then do; 
     journey=1; 
     if level1='Step1' then session+1; 
    end; 
    if last.level1 then journey=1; 
run;