|
沙发

楼主 |
发表于 2009-7-27 00:24:11
|
只看该作者
Re: 再求教:如何写dummy变量最快?
是根据变量清单创建模拟数据吗?
[code:24wyxak4]data a;
input var_name $ var_type $;
datalines;
var1 n
var2 c
var3 n
var4 n
var5 c
;
%macro creat_var(ds);
%let dsid=%sysfunc(open(&ds));
%syscall set(dsid);
%let nobs=%sysfunc(attrn(&dsid,nobs));
%do i=1 %to &nobs;
%let rc=%sysfunc(fetch(&dsid,&i));
%if &var_type=n %then %do;
&var_name=ceil(10*ranuni(123));
%end;
%else %do;
&var_name=put(ceil(2*ranuni(123)),8.);
&var_name=trim(left(&var_name));
&var_name=tranwrd(&var_name,'1','AAA');
&var_name=tranwrd(&var_name,'2','BBB');
%end;
%end;
%let rc=%sysfunc(close(&dsid));
%mend;
data b;
do i=1 to 100;
%creat_var(a)
output;
end;
run;[/code:24wyxak4] |
|