带有SAS中顺序值的CONDITIONAL语句

时间:2018-05-07 13:30:07

标签: sas

2我正在写一个IF语句来过滤掉一些顺序的值。有没有办法编写IF语句来显示顺序值

data H; 
input HH $; 
cards; 
Y1
Y2
Y3
Y4
Y5
; run; 


data t; 
set H; 
if hh in ('Y2' -'Y4');
run;

2 个答案:

答案 0 :(得分:1)

您可以利用<>处理字符变量和排序顺序这一事实:

data t; 
set H; 
if 'Y2' <= hh <= 'Y4';
run;

但是,Y22也会在Y2Y4之间进行排序。

data H; 
input HH $; 
cards; 
Y1
Y2
Y3
Y4
Y5
Y22
; run; 


data t; 
set H; 
if 'Y2' <= hh <= 'Y4';
run;

因此,在这种情况下你需要添加额外的逻辑。

答案 1 :(得分:1)

使用Scan功能提取数字部分,然后提交您想要的数字:

if scan(hh,1,'Y') >= 1 & scan(hh,1,'Y') <=4;

New Datastep:

data t; 
set H; 
if  scan(hh,1,'Y') >= 1 & scan(hh,1,'Y') <=4;
run;