如何在SAS中循环浏览字符串值列表

问题描述 投票:0回答:1

我正在一个有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宏总是让我感到困惑。

sas do-loops
1个回答
0
投票

只需将IN运算符与:修饰符一起使用即可对其进行修整比较。示例:

proc print data=sashelp.class;
  where name in: ('Ali','Bar');
run;
© www.soinside.com 2019 - 2024. All rights reserved.