我正在一个有45个代码列表的项目中工作。我的目标是找到所有以代码的前3个字符开头的代码。
例如,我需要找到所有以N31,N32,N33 .... N34开头的代码。我已经弄清楚如何在SAS中手动执行此操作(使用N31_之类的代码或N32_之类的代码)
data slice;
set dat.all_hcpcs_nitos;
where nitos like "N30_"
or nitos like "N31_";
run;
我不希望对这45次进行硬编码,而是希望找到一些……更优雅的东西。如果我使用python,我将列出45个代码,然后遍历列表中的每个代码。我不确定如何在SAS中进行此类处理。
从我的搜索看来,我可能需要执行%let codes =“代码列表”。我也尝试过做类似i = 1到8的事情,并尝试做类似的搜索:
data slice;
set dat.all_hcpcs_nitos;
%do i = 1 to 8;
where nitos like "N3&i._";
%end;
run;
在此先感谢您的任何建议。我一直在挑战自己,使我的代码更紧凑,而SAS宏总是让我感到困惑。
答案 0 :(得分:2)
只需将IN
运算符与:
修饰符一起使用即可对其进行修整比较。
示例:
proc print data=sashelp.class;
where name in: ('Ali','Bar');
run;