另:怎么定义第一部分里的varlist=, 使其能够实现下面两种情况:(1)比如我有100个var,不需要逐一列出就可引用全部的var ; (2) 我只想引用其中的98个,剩下的两个var2和var99我希望剔除出去。
关于var的引用,我了解这两种方式:var _all_; 或者mean=mean(of _all_);
*1;
%macro median(mydata =work.v23, varlist=read write math science socst, medname = median);
*2;
data _null_;
if 0 then set &mydata nobs = nobs;
call symput('nobs', nobs);
run;
*3;
proc transpose data = &mydata out = aaa;
var &varlist;
run;
*4;
proc univariate data = aaa noprint;
var col1 - col&nobs;
output out = bbb median = col1 - col&nobs;
run;
*5;
proc transpose data = bbb out = ccc;
var _all_;
run;
*6;
data v25;
merge &mydata ccc(keep = col1 rename = (col1 = &medname));
run;
%mend median;
v23.rar
(760 Bytes)
本附件包括:- v23.sas7bdat



雷达卡



京公网安备 11010802022788号







