SAS:

2016-08-16 50 views
0

內按組編碼爲一個變量的值的僞變量I具有CASE_ID(x和y和z),一組多個日期(包括重複日期)爲每個CASE_ID中的數據集,和可變VAR。我想的基團,由此,如果VAR =在某些具體的日期,則DUMMYVAR = 1對應於CASE_ID所有觀察「C」爲CASE_ID X X上與該日期內創建由組虛擬變量DUMMYVAR。SAS:

我相信,一個經典2XDOW是這裏的關鍵,但這是利用SAS,並且無法獲得這個由兩個BY組我在這裏的第三個星期。

我有參考,並試圖寫的海闊的代碼在這裏的變化:

PROC SORT have; 
     by CASE_ID DATE; 
    RUN; 

    data want; 
    do until (last.DATE); 
     set HAVE; 
     by date notsorted; 
     if var='c' then DUMMYVAR=1; 

    do until (last.DATE); 
     set HAVE; 
     by DATE notsorted; 

     if DATE=1 then ???????? 

    end; 
    run; 

回答

0

更改BY語句來匹配你正在做的分組。並在第二個循環中添加一條簡單的OUTPUT;聲明。然後,您的新數據集將包含原始數據集中的所有行和新變量DUMMYVAR。

data want; 
    do until (last.DATE); 
    set HAVE; 
    by case_id date; 
    if var='c' then DUMMYVAR=1; 
    end; 
    do until (last.DATE); 
    set HAVE; 
    by case_id date; 
    output; 
    end; 
run; 

這將創建值爲1或缺失值的變量DUMMYVAR。如果你想讓這些值爲1或0,那麼你可以在第一個DO循環之前將它設置爲0。或者在現有IF語句之前添加if first.date then dummyvar=0;語句。