2013-11-20 29 views
0

因此,處理SAS Dx數組:我有一個數組,disease_category。我現在正在做的是爲每個數組[x]分配一個單獨的類別,然後將所有內容都轉換爲最終數組。SAS數組循環:檢查數組[x]是否爲NULL,然後填充它

我想要做的是檢查array [x]是否爲NULL - 如果是,那麼我想用disease_category標籤填充它。否則,我想移到下一個數組(數組{x + 1])並重復該過程,直到數組已滿和/或循環完成。我一直在研究這一點。我懷疑一個DO循環是必要的,還有一個計數機制。

array disease_category[*] _character_ disease1-disease10; 

If DGNSCD1 in: ('033','390','391','037','045') 
then disease_category[1] = "Immunization"; 

if (DGNSCD1 =: "3200" AND %AGE(1,5)) 
then disease_category[2] = "Hemophilius"; 

回答

1

您需要以下內容,加上疾病類別名稱的第二個數組或將類別號碼轉換爲標籤的格式。我喜歡後者。

proc format; 
value discat 
1="Immunization" 
2="Hemophilius" 
other="NONE" 
; 
quit; 

然後在您的數據步:

do _n = 1 to dim(disease_category); 
if missing(disease_category[_n]) then disease_category[_n]=put(_n,discat.); 
end;