|
|
Re: proc means输出问题
Here is a working but awkward approach. Essentially it's nothing new but pretty much borrowing the ideas from the posts in the above. I'm also expecting an elegant way of achieving this to show up. <!-- s:-) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":-)" title="Smile" /><!-- s:-) -->
[code:orb67fo6]data bb;
input var1-var4;
datalines;
1 2 3 4
1 2 3 4
1 2 3 4
5 6 4 8
8 5 9 3
7 5 8 7
3 4 9 8
5 2 4 6
;
run;
%macro means(in =, vars =, metrics =, out =);
proc means data = &in. noprint;
var &vars.;
output out = &out. (drop=_type_ _freq_)
&metrics. /autoname;
run;
proc transpose data = &out.
out = &out.(rename = (_name_ = formerVar
col1 = value
)
);
run;
data &out.(drop = formerVar);
set &out.;
variable = scan(formerVar, 1, '_');
metric = scan(formerVar, 2, '_');
run;
proc sort data = &out.;
by variable;
run;
proc transpose data = &out.
out = &out.(drop = _name_);
by variable;
id metric;
var value;
run;
%mend means;
%means(in = bb, vars = %nrstr(var1-var4), metrics = %nrstr(mean= N= std= min= max= median=), out = summary);
[/code:orb67fo6] |
|