参照汪海波《SAS统计分析与应用从入门到精通》的example6_7代码,但是按照书本的代码运行不了,所以试着自己改了一下,但没有预期的效果,所以想请教各位,代码应该怎么改?
%macro f(database=,var=,group=);
proc sort data=&database;
by &group;
run;
proc univariate data=&database noprint;
var &var;
by &group;
output
out=result
n=n nmiss=nmiss mean=mean std=std median=median q1=q1 q3=q3 min=min max=max;
run;
data a(where=(&group=1)) b(where=(&group=2));
set result;
format mean 6.1 median 6.1 std 6.1;
run;
data ab;
set a b;
run;
data _null_;
file print notitle;
put #1 @5 "指标" @22 "子公司1" @42 "子公司2"
#2 @5 "例数(缺失)" @22 NA '(' nmissa')' @42 NB '(' nmissb')'
#3 @5 "均数(标准差)" @22 meanA '(' stda')' @42 meanB '(' stdB')'
#4 @5 "中位数(Q1-Q3)" @22 mediana '(' q1a '~' q3a')' @42 medianb '(' q1b '~' q3b')'
#5 @5 "最小值-最大值" @22 mina '~' maxa @42 minb '~' maxb;
run;
%mend f;
data example6_7;
do company=1 to 5;
do month=1 to 12;
input sales @@;
output;
end;end;
cards;
21 23 25 28 31 34 37 41 45 50 54 60
22 25 29 33 38 44 51 59 67 77 89 102
23 28 33 40 48 57 69 82 99 119 142 171
24 30 38 47 59 73 92 114 143 179 224 279
25 33 42 55 71 93 121 157 204 265 345 448
;
run;
%f(database=example6_7,var=sales,group=company);