- %macro nation(inDS=,outDS=);
- %do i=1 %to &n_nation.;
- %let nt=%scan(&nation.,&i.);
- data &outDS.;
- set &inDS.;
- id_addr=%sysfunc(tranwrd(id_addr,&nt.,%str()));
- now_addr=%sysfunc(tranwrd(now_addr,&nt.,%str()));
- company_addr=%sysfunc(tranwrd(company_addr,&nt.,%str()));
- run;
- %end;
- %mend nation;
&n_nation.为民族码表的条数
&nation.为全部民族名称合并的字符串,以空格隔开
现在遇到的问题是%sysfunc(tranwrd(id_addr,&nt.,%str()))不能获取&nt.的值,代码跑完并不能实现删除相应关键字功能。
请问要怎么改才好,之前有通过将id_addr逐条赋为宏变量值,然后替换,代码可实现。