proc SQL对多个列执行相同的操作

  • 本文关键字:操作 执行 SQL proc sas
  • 更新时间 :
  • 英文 :


我有一个具有20列的数据集,所有列都以名称morb_开头,它们都是12,编码为NoYes。还有一列叫做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_1morb_2,而是morb_amputationmorb_mimorb_tia等。

proc summary data=morbidity nway missing;
class pat_tno;
output out=max max(morb_:) = ;
run;

最新更新