2016-11-30 5 views
0

これは私が書いたコードです。 3つのデータステップで構成されています。最初の2つは完全に動作しますが、最後は何もしませんし、なぜ私はうまく動作しません。すべてのヘルプは非常にSASデータステップが予想通りに増加しない

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

に理解されるように、上記ステップは私のデータを介して動作し、レベル1の各最初のインスタンスに対して1に設定され、フラグを作成期待しました。次のステップは、その後、再びデータを介して動作し、各セッション内のすべての最後のものでもフラグの付与されていることを確認する必要があります(下記)のセッション "

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

この最後のステップに自分のデータやグループ、それを介して動作します旅は=何も起こりませんが、旅行の各フィールドの最後のステップはnullのままです。

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

何が起こっているのですか?あなたのログを見れば、事前

答えて

2

おかげで、それはノートを持っています

NOTE: Variable last.session is uninitialized. 

なぜ?最後のデータステップでsessionBYステートメントがないため、last.session変数を使用することができません。

私はちょっと不思議ですが、なぜあなたはこれを壊していますか?これは、1つのデータステップで実行できます。

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; 
関連する問題