与SAS datastep

时间:2015-11-16 08:24:22

标签: sas

我们在SAS datastep中有like运算符(sql)的替代方法吗? 我使用下面的代码来满足我的要求。但它没有用。

IF var1 ne : 'ABC' then new_var=XYZ;

请有人在此建议有什么问题或向我建议这种情况的正确用法。

谢谢,

3 个答案:

答案 0 :(得分:3)

在datastep中,'如果'可以与' index / find / findw'一起使用,但如果你想使用'喜欢',你必须使用' where'和'喜欢'在一起。

data want;
   set sashelp.class;
   where name like 'A%';
run;

答案 1 :(得分:1)

您可以使用find功能,例如:

data want;
  set sashelp.class;
  if find(name,'e') then new_var='Y';
run;

此致 阿米尔。

答案 2 :(得分:0)

您使用它的冒号运算符只会比较以引用的字符串' ABC'开头的值。基本上SAS比较2个值,截断到2的最小长度。因此,如果var1中的所有值都超过3个字符,那么在与' ABC&比较之前,它会将值截断为3个字符。 #39;

因此,它与sql中的like函数不同,后者与%通配符运算符一起使用,以确定是否查看字符串中的开头,结尾或任何位置。

要复制like,您需要使用@Amir推荐的find等函数,或者在这种情况下也常用的index函数。