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

If statement sas数据步骤中if else语句的通配符,if-statement,sas,wildcard,If Statement,Sas,Wildcard,我想根据某个字符串从调查数据中编码一个新变量,但要使用sas数据步骤在该字符串前后包含一个通配符以获取附加信息。下面的代码与字符串开头的模式匹配 data survey_data; set final_data; if 'var1' =: 'this string' then var2 = 'Yes'; else var2 = 'No'; run; 但是,如果字符串出现在字符串的中间,我不知道如何匹配它,“:=:”不起作用。 < P>使用索引< /

我想根据某个字符串从调查数据中编码一个新变量,但要使用sas数据步骤在该字符串前后包含一个通配符以获取附加信息。下面的代码与字符串开头的模式匹配

data survey_data;
    set final_data;
        if 'var1' =: 'this string' then var2 = 'Yes';
        else var2 = 'No';   
run;

但是,如果字符串出现在字符串的中间,我不知道如何匹配它,“:=:”不起作用。

< P>使用<代码>索引< /代码>函数:

data survey_data ; set final_data ; if index(var1,'this string') then var2 = 'Yes' ; else var2 = 'No' ; run ; 是以下的简写:

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

SAS索引函数>

任何非零数字均视为真。不仅仅是积极的。但是INDEX()函数不会返回负数。
if index(var1,'this string') > 0 then