sas数据步骤中if else语句的通配符

时间:2015-11-10 23:05:02

标签: if-statement sas wildcard

我想根据某个字符串从调查数据中编码一个新变量,但是使用sas数据步骤在该字符串之前和之后包含一个通配符以获取其他信息。以下代码与字符串

开头的模式匹配
Spinner.getSelectedItem()

但我不知道如果它出现在字符串的中间,如何使它与模式相匹配,':=:'不起作用。

1 个答案:

答案 0 :(得分:2)

使用index功能:

data survey_data ;
  set final_data ;
  if index(var1,'this string') then var2 = 'Yes' ;
  else                              var2 = 'No' ;
run ;

INDEX函数返回一个数值,表示var1中找到'this string'的第一个字符位置。如果未找到INDEX则返回零。没有比较运算符的SAS中的if语句(=><,eq,gt)如果具有正的非零值则解析为true,因此:

if index(var1,'this string') then

是:

的简写
if index(var1,'this string') > 0 then

SAS INDEX功能> https://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000212242.htm