我想根据某个字符串从调查数据中编码一个新变量,但是使用sas数据步骤在该字符串之前和之后包含一个通配符以获取其他信息。以下代码与字符串
开头的模式匹配Spinner.getSelectedItem()
但我不知道如果它出现在字符串的中间,如何使它与模式相匹配,':=:'不起作用。
答案 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