fxjollois
2/6/2015 - 10:48 AM

SAS Time Series Transformation

SAS Time Series Transformation

SAS Time Series Transformation

SAS Code to transform multiple time series with one line per date et per id, in time series with one lien per id.

data a;
input id t v vv;
cards;
1 1 13 51
1 2 16 654
1 3 23 21
2 1 345 3212
2 2 42 22
2 3 34 254
run;

%macro f(v);
proc transpose data = a out = b (drop= _NAME_) prefix = &v;
    var &v;
    id t;
    by id;
run;
%if %sysfunc(exist(res)) %then %do;
    data res;
        merge res b;
        by id;
    run;
%end;
%else %do;
    data res;
        set b;
    run;
%end;
%mend;
%f(v);
%f(vv);
proc print data = res;
run;