我有一个具有20列的数据集,所有列都以名称morb_
开头,它们都是1
或2
,编码为No
和Yes
。还有一列叫做Pat_TNO
,是病人的参考编号。患者有不止一行
我希望创建一个新的数据集,总结每个患者是否至少有过每种类型事件中的一种。到目前为止,我所写的代码工作完美,但有没有一种方法来简化它使用数组?
proc sql;
select
Pat_TNO,
max(morb_1) as morb_1 format yn.,
max(morb_2) as morb_2 format yn. /* etc etc */
from morbidity
group by Pat_TNO;
quit;
列名不是morb_1
和morb_2
,而是morb_amputation
、morb_mi
、morb_tia
等。
proc summary data=morbidity nway missing;
class pat_tno;
output out=max max(morb_:) = ;
run;