Thank you all so much for your help. In the end I managed to do it this way: proc transpose data=transactions out=tall ;
by id week segment notsorted;
var average freq ;
run;
data tall ;
set tall ;
length new_name $32 ;
new_name = catx('_',cats('WEEK',week),segment,_name_);
run;
proc transpose data=tall out=want ;
by id;
id new_name;
var col1 ;
run;
... View more