Нечеткое соответствие ключевому слову в большей строке — SAS

Используя SAS, у меня есть таблица с предложениями, и я ищу строки в таблице, где ключевое слово находится в предложении с использованием нечеткого соответствия (complev function). Есть ли способ в SAS найти строку ключевого слова в предложениях? Я знаю, как использовать complev, но я могу использовать его только для сравнения полных строк, а не строки как части большей строки. Для этой примерной таблицы ключевое слово будет 'example', а результат сравнения будет в столбце Result. Спасибо за ваши идеи!

This is an Example sentence : 1
Here is another one : 0
Also an exmple : 1
The examples keep coming : 1
No worries : 0

person Thankful    schedule 17.03.2020    source источник


Ответы (1)


Посмотрите, можете ли вы использовать это в качестве шаблона. Я сравниваю значение Complev с тремя, но вы можете установить любое подходящее значение.

data have;
input string $ 1-25;
datalines;
Example sentence         
Here is another one      
Also an exmple           
The examples keep coming 
No worries               
;

data want;
   set have;
   result = 0;
   do _N_ = 1 to countw(string);
      if complev('example', scan(string, _N_)) < 3 then do;
         result=1; leave;
      end;
   end;
run;

РЕДАКТИРОВАТЬ: используйте complev('example', scan(string, _N_), 'i'), если вы хотите, чтобы сравнение было нечувствительным к регистру.

person draycut    schedule 17.03.2020
comment
Стоит ли стандартизировать регистр (верхний/нижний) или complev() уже учитывает это? - person Reeza; 17.03.2020
comment
Хороший улов, Риза, спасибо! Я думал, что да, но просматривая документ, я ошибался. Я отредактировал ответ.. - person draycut; 17.03.2020