将多行组合成单行 SAS

Combine multiple rows into single row SAS

我有以下数据集,我希望将变量“summary”转置并创建为变量

Date               serNo      source      summary      OrderNo
28SEP2017    101            CO            Number       123
28SEP2017    101            CO            City              Albany

输出数据集应如下所示

 Date               serNo      source      Number   City
 28SEP2017    101            CO           123      Albany

有人可以帮忙吗?

由 Proc sql

 proc sql;
 select distinct date, serno, source, 
 max(case when summary = 'Number' then Orderno end) as Number,
 max(case when summary = 'City' then orderno end) as city
 from have
 group by date, serno, source;

或通过 proc 转置

 proc sort data=have ;
 by date serno source;
 run;

 proc transpose data=have out=want(drop = _name_);
 by  date serno source;
 id summary;
 var orderno;
 run;