2016-11-30 37 views
0

這是我寫的代碼。它由3個數據步驟組成。前兩個完美的工作,但最後沒有做任何事情,我不知道爲什麼。任何幫助將是非常讚賞SAS數據步驟不按預期遞增

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

正如預期上述步驟工作,通過我的數據,並創建一個標誌,設置爲1(第一級)的每個第一個實例。下一步則致力於通過我的數據和組成「會話」

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

這最後的(如下圖)第一步應該再通過數據重新工作,並確保每個環節每一個最後一件事也給予了的標誌旅程= 1.發生的事情是什麼都沒有,並且每個旅程領域的最後一步都是空的。

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

任何想法是怎麼回事?提前

回答

2

如果你看看你的日誌

謝謝,它有一張紙條:

NOTE: Variable last.session is uninitialized. 

爲什麼?由於在上一個數據步驟中沒有BY語句session,因此您沒有可用的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;