SAS数据步骤中的Like运算符
对于SAS数据步骤中的SAS数据步骤中的Like运算符,sas,Sas,对于SAS数据步骤中的操作符(sql),我们是否有其他选择? 我使用下面的代码来满足我的要求。但它不起作用 IF var1 ne : 'ABC' then new_var=XYZ; 请任何人提出这方面的错误,或向我建议这种情况下的正确用法 谢谢,您可以使用查找功能,例如: data want; set sashelp.class; if find(name,'e') then new_var='Y'; run; 您可以使用find功能,例如: data want; set sas
操作符(sql),我们是否有其他选择?
我使用下面的代码来满足我的要求。但它不起作用
IF var1 ne : 'ABC' then new_var=XYZ;
请任何人提出这方面的错误,或向我建议这种情况下的正确用法
谢谢,您可以使用查找功能,例如:
data want;
set sashelp.class;
if find(name,'e') then new_var='Y';
run;
您可以使用find
功能,例如:
data want;
set sashelp.class;
if find(name,'e') then new_var='Y';
run;
您所使用的冒号运算符仅比较以带引号的字符串“ABC”开头的值。本质上,SAS比较2个值,将其截断为2个值中的最小长度。因此,如果var1
中的所有值都超过3个字符,那么它将在与“ABC”进行比较之前将值截断为3个字符
因此,它不同于sql中的like
函数,该函数与%
通配符运算符结合使用,以确定是查看字符串的开头、结尾还是任意位置
要复制类似于
的,您需要使用@Amir推荐的find
或index
等函数,这在这种情况下也很常用。使用的冒号运算符只比较以带引号的字符串“ABC”开头的值。本质上,SAS比较2个值,将其截断为2个值中的最小长度。因此,如果var1
中的所有值都超过3个字符,那么它将在与“ABC”进行比较之前将值截断为3个字符
因此,它不同于sql中的like
函数,该函数与%
通配符运算符结合使用,以确定是查看字符串的开头、结尾还是任意位置
要复制like
,您需要使用@Amir推荐的find
或index
等函数,这在这种情况下也很常用。在数据步骤中,“if”可以与“index/find/findw”一起使用,但如果要使用“like”,则必须同时使用“where”和“like”
data want;
set sashelp.class;
where name like 'A%';
run;
在datastep中,“if”可以与“index/find/findw”一起使用,但如果要使用“like”,则必须同时使用“where”和“like”
data want;
set sashelp.class;
where name like 'A%';
run;
“它不工作”不是一个有用的描述它抛出此错误:xyz
或它运行,但会产生不希望的结果,xyz
更好。特别是,在这种情况下,代码确实可以工作,尽管我感到惊讶;所以,请解释一下你想要它做的事情是什么?“它不工作”不是一个有用的描述它抛出此错误:xyz
或它运行,但会产生不希望的结果,xyz
更好。特别是,在这种情况下,代码确实可以工作,尽管我感到惊讶;所以,请解释一下它没有做什么,你希望它做什么?