i have large data set (18 million observations) transpose subsetting based on 1 variable , creating 900 new variables out of sub/ets. example code , desired output format below: example data:
data long1 ; input famid year faminc ; cards ; var1 96 40000 var1 97 40500 var1 98 41000 var2 96 45000 var2 97 45400 var2 98 45800 var3 96 75000 var3 97 76000 var3 98 77000 ; run;
code:
proc transpose data = data; famid; var faminc; run;
because of size of data set, i'm wondering if have use loop find first , last observations of each var , iteratively subset. know sql or proc achieve desired output format?
i'm not sure subsetting based on, if it's id, rather straightforward.
using example this ucla's page on proc sort, example work fine using modified input data:
data long; input id year faminc ; datalines ; 1 96 40000 1 97 40500 1 98 41000 2 96 45000 2 97 45400 2 98 45800 3 96 75000 3 97 76000 3 98 77000 ; proc sort data=long; year; run; proc transpose data=long out=wide(drop=_name_) prefix=var; year; var faminc; run;
results
year var1 var2 var3 96 40000 45000 75000 97 40500 45400 76000 98 41000 45800 77000
ucla's sas pages clearer sas's own regards using proc transpose
in both directions. here 4 valuable links...