之間的線,使我有過很多的時間間隔是這樣的SAS規範總結日期
obs | date_of_service | units | CPT | ID
-----------------------------------------
1. | 11/03/2015 | 40 |xxxx6| 234
2. | 11/04/2015 | 1 |xxxx5| 234
3. | 11/11/2015 | 1 |xxxx5| 234
4. | 11/18/2015 | 1 |xxxx5| 234
5. | 11/20/2015 | 40 |xxxx6| 234
6. | 11/25/2015 | 1 |xxxx5| 234
7. | 12/02/2015 | 1 |xxxx5| 234
etc....
東西很多IDS數據, 什麼,我需要做的是總和的CPT xxxx6之間OBS爲單位每個區間因爲它是一個包含許多唯一ID的非常大的數據集。
好了,所以這是我現在有:(。)
%MACRO lags();
%let n=1;
data out;
set in;
by id Date_of_service ;
DO _n_=&n. until (last.id);
if (id=lag&n.(id) and CPT="xxxx6") then do;
if units ne . then output;
call missing (TOTAL);
end;
if CPT="xxxx5" or CPT= "xxxx7" then TOTAL + count;
END;
run;
%MEND;
%lags
的問題是,如果我有兩個或連續多xxxx6之間沒有我得到一個空一個xxxx5或xxxx7值或0在TOTAL列中。而且我沒有爲xxxx6 cpt的所有ID獲得第一條觀察線。
你試過了什麼代碼? –
你想讓你的輸出看起來像什麼? – Reeza
我試着用lag&n做兩個宏循環。 (服務日期)並用標籤標記並試圖總結它們。我只能想象這會是一個普遍的問題... – gduhoffmann