SAS中文论坛
标题:
请教:如何根据某个字段的值做循环
[打印本页]
作者:
shiyiming
时间:
2009-8-28 19:05
标题:
请教:如何根据某个字段的值做循环
现在有全国34个省的数据,其中有个变量时province,我想对每个省份的数据做同样的处理,我能想到是下面的笨办法,每个省见一个数据集,然后分别处理,
但是因为34个省的代码都不是连续的,只能一个一个手敲,而且后面还有很多程序运行,感觉有点费力……
想请教版上的大侠,有没有方法能实现根据某个字段的值做循环? 如根据province 的34个值自动将程序运行34次? 谢谢!!!
data province_110;
set a;
if province=110;
run;
作者:
shiyiming
时间:
2009-8-28 20:17
标题:
Re: 请教:如何根据某个字段的值做循环
[code:12fqnhhy]%macro do_by_var_list(inds,id_var);
options nosymbolgen nomprint;
proc sql;
create table &id_var._list as
select distinct &id_var as name from &inds;
quit;
%let dsid=%sysfunc(open(&id_var._list,i));
%syscall set(dsid);
%let nobs=%sysfunc(attrn(&dsid,nobs));
%do i=1 %to &nobs;
%let rc=%sysfunc(fetchobs(&dsid,&i));
/* by变量的variable name:&id_var */
/* by变量的value:&id_var(character的变量用"") */
/* some statements */
proc print data=&inds(where=(&id_var="&name"));
run;
%end;
%let rc=%sysfunc(close(&dsid));
proc delete data=work.&id_var._list;
quit;
%mend do_by_var_list;
%do_by_var_list(sashelp.class,sex)[/code:12fqnhhy]
作者:
shiyiming
时间:
2009-8-28 20:49
标题:
Re: 请教:如何根据某个字段的值做循环
崔颢题诗在上头。呵呵。
作者:
shiyiming
时间:
2009-8-28 22:48
标题:
Re: 请教:如何根据某个字段的值做循环
厉害!学习了! <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->
欢迎光临 SAS中文论坛 (https://mysas.net/forum/)
Powered by Discuz! X3.2