我们在SAS datastep中有like
运算符(sql)的替代方法吗?
我使用下面的代码来满足我的要求。但它没有用。
IF var1 ne : 'ABC' then new_var=XYZ;
请有人在此建议有什么问题或向我建议这种情况的正确用法。
谢谢,
答案 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;
like
函数不同,后者与%
通配符运算符一起使用,以确定是否查看字符串中的开头,结尾或任何位置。
要复制like
,您需要使用@Amir推荐的find
等函数,或者在这种情况下也常用的index
函数。