Ниже приведен пример набора данных, который у меня есть
data have;
input institution$ GPA;
cards;
A 3.2
AB 3.4
BC 4.0
DF 3.2
A 4.0
A 3.0
A 3.5
A 3.7
A 3.8
F 3.8
D 3.2
D 3.1
D 3.7
;
run;
По сути, я хочу создать макрос, который выбирает случайную выборку из этого набора данных (фактический набор данных намного больше). Я также хочу смоделировать эту процедуру выборки, чтобы, например, я мог сделать 50 итераций выборки, и для каждой итерации я получил набор выходных данных. Я попытался создать следующий макрос, чтобы сделать это
%macro beta (maxj=,datain= ,numofsamples= , dataout=,);
%do j=1 %to &maxj;
proc surveyselect data=&datain
method=srs n=&numofsamples out=&dataout_&maxj;
run;
%end;
%mend;
%beta (maxj=4 ,datain=have ,numofsamples=5,dataout=pool);
По сути, когда я запускаю это, я хочу получить выходные наборы данных, чтобы они назывались pool_1,pool_2,pool_3 etc.
Однако, когда я запускаю этот макрос, он, кажется, не делает то, что я хотел. Вместо этого он показывает, что что-то не так с &dataout_&maxj; run;
строкой