У меня есть длинная символьная переменная (до 12 000 символов), и я хотел бы найти строку внутри переменной, которая звучит как определенное слово.
Я также хотел бы создать переменную, которая равна единице, если строка находится в переменной. Скажем, ради аргумента, слово, которое я пытаюсь найти, это «Мэри» (не чувствительный к регистру). Вот четыре образца строки в переменной называется «строка» в наборе данных под названием «вопрос»:Как помечать, если слово звучит как любое слово в поле символов, используя SOUNDEX?
- Мэри был барашек его шерсть была белой, как снег
- Джек быть ловким Джек быть быстрым Джек перепрыгнуть подсвечник
- Я думаю, вы и я должен жениться друг с другом
- Я на самом деле не хочу, чтобы выйти замуж
переменная флаг должен = 1 для строк 1 и 3 (потому что Мэри и выйти замуж).
К сожалению, я не думаю, что я могу использовать этот код:
DATA answer;
SET question;
IF FINDW(string, SOUNDEX("Mary")) ne 0 THEN flag=1;
ELSE flag=0;
RUN;
Это не работает, потому что SAS пытается найти код Soundex для «Мэри» в строке (не фактические строки "Мэри"). Любые мысли о том, как обойти это?