所以,处理SAS Dx阵列:我有一个数组,疾病_category。我目前正在做的是为每个数组[x]分配一个单独的类别,然后将所有内容滚动到最终数组。
我想做的是检查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";
答案 0 :(得分: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;