Hi:
If all you want is a report, here is another approach that shows 2 PROC REPORT steps (one with summarized total, one without) based on restructured data.
data start;
infile datalines dlm=',' dsd;
input idnum var1 $ var2 $ var3 var4 $ var5 var6 var7 var8 var9 var10;
return;
datalines;
1,a,b,12,e,2,3,4,5,6,7
2,v,f,15,g,5,6,7,8,9,10
3,q,w,11,h,1,1,1,1,1,1
;
run;
data final(keep=idnum var1 var2 var3 var4 var5 varnum varval);
set start;
** restructure data by making 1 obs for every var from 6-10;
** could put this in DO loop, but keeping it simple for this program;
varnum = 'var6';
varval = var6;
output;
varnum = 'var7';
varval = var7;
output;
varnum = 'var8';
varval = var8;
output;
varnum = 'var9';
varval = var9;
output;
varnum = 'var10';
varval = var10;
output;
run;
proc print data=final;
title 'See final structure';
run;
proc report data=final nowd;
title '1) Just Display the Other variables';
column idnum var1 var2 var3 var4 var5 ('Other Vars' varnum varval);
define idnum / order;
define var1 / order;
define var2 / order;
define var3 / order;
define var4 / order;
define var5 / order;
define varnum / display 'Var Name';
define varval / display 'Var Value';
run;
proc report data=final nowd;
title '2) Or, Add them Up';
column idnum var1 var2 var3 var4 var5 ('Other Vars' varnum varval);
define idnum / order;
define var1 / order;
define var2 / order;
define var3 / order;
define var4 / order;
define var5 / order;
define varnum / display 'Var Name';
define varval / sum 'Var Value';
break after idnum / summarize;
run;
If all you want is a report, #1 is that report, but needs a separate row in the data for every var, var6-var10, where the values of var1-var5 stay the same on those rows (see the PROC PRINT output for the restructured data).
Then report #2 summarizes var6-var10 for every IDNUM.
cynthia
... View more