Вы можете использовать функцию FIND в SAS, чтобы найти позицию первого вхождения некоторой подстроки в строке.
Вот два наиболее распространенных способа использования этой функции:
Метод 1: найти позицию первого вхождения строки
data new_data;
set original_data;
first_occurrence = find (variable_name, " string ");
run;
Метод 2: найти позицию первого вхождения строки (игнорируя регистр)
data new_data;
set original_data;
first_occurrence = find (variable_name, " string", " i ");
run ;
Аргумент «i» указывает SAS игнорировать регистр при поиске подстроки.
В следующих примерах показано, как использовать каждый метод со следующим набором данных в SAS:
/\*create dataset\*/
data original_data;
input phrase $1-25;
datalines ;
The fox ran fast
That is a quick FOX
This fox is a slow fox
The zebra is cool
;
run ;
/\*view dataset\*/
proc print data =original_data;
Пример 1: поиск позиции первого вхождения строки
Следующий код показывает, как найти позицию первого вхождения «лисы» в каждой строке:
data new_data;
set original_data;
first_fox = find (phrase, " fox ");
run ;
Вот как интерпретировать вывод:
- Лиса бежала быстро (первое появление в позиции 5 )
- Это быстрый FOX (строка «лиса» в нижнем регистре никогда не встречается)
- Эта лиса — медленная лиса (первое появление на позиции 6 ).
- Зебра — это круто (Строка «лиса» никогда не встречается)
Пример 2. Найти позицию первого вхождения строки (без учета регистра)
В следующем коде показано, как найти позицию первого вхождения «лисы» без учета регистра в каждой строке:
data new_data;
set original_data;
first_fox = find (phrase, " fox", " i ");
run ;
Вот как интерпретировать вывод:
- Лиса бежала быстро (первое появление в позиции 5 )
- Это быстрый F OX (первое появление «лисы» на позиции 17 )
- Эта лиса — медленная лиса (первое появление на позиции 6 ).
- Зебра — это круто (Строка «лиса» никогда не встречается)
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в SAS:
Как нормализовать данные в SAS
Как заменить символы в строке в SAS
Как заменить пропущенные значения нулем в SAS
Как удалить дубликаты в SAS