Does not exactly answer your question but might help
Means for variables defined in a meta dataset
inspired by
https://goo.gl/YZ0QDK
https://communities.sas.com/t5/Base-SAS-Programming/call-execute/m-p/338992
HAVE the following meta datasets
=================================
up to 40 obs from meta total obs=2
bs VAR
1 HEIGHT
2 WEIGHT
and sashelp.class
p to 40 obs from sashelp.class total obs=19
bs NAME SEX AGE HEIGHT WEIGHT
1 Alfred M 14 69.0 112.5
2 Alice F 13 56.5 84.0
3 Barbara F 13 65.3 98.0
4 Carol F 14 62.8 102.5
5 Henry M 14 63.5 102.5
6 James M 12 57.3 83.0
7 Jane F 12 59.8 84.5
8 Janet F 15 62.5 112.5
WANT (proc means for variables in meta data)
==============================================
Analysis Variable : HEIGHT
N Mean Std Dev Minimum Maximum
------------------------------------------------------------------
19 62.3368421 5.1270752 51.3000000 72.0000000
------------------------------------------------------------------
Analysis Variable : WEIGHT
N Mean Std Dev Minimum Maximum
-----------------------------------------------------------------
9 100.0263158 22.7739335 50.5000000 150.0000000
-----------------------------------------------------------------
WORKING CODE
============
call symputx('hvar',hospvar);
rc=dosubl('
%do_zscore(infile=sashelp.class,numlags=30,hospvar=&hvar);
');
FULL SOLUTION
=============
%symdel hvar; * just in case it exists;
proc datasets lib=work;
delete meta;
run;quit;
data meta;
do var='HEIGHT','WEIGHT';
output;
end;
run;quit;
* SAS solution;
%macro do_zscore(infile = ed_data_temp,hospvar=,numlags=30);
proc means data=&infile.;
var &hospvar.;
run;quit;
%mend do_zscore;
data _null_;
set meta(keep=var rename=var=hospvar);
call symputx('hvar',hospvar);
rc=dosubl('
%do_zscore(infile=sashelp.class,numlags=30,hospvar=&hvar);
');
run;quit;
or
data _null_;
set meta(keep=var rename=var=hospvar);
call symputx('hvar',hospvar);
rc=dosubl('
proc means data=sashelp.class;
var &hvar.;
run;quit;
');
run;quit;
You could easily add infile macro var to meta data
... View more