Вы можете использовать функцию SUBSTR в SAS для извлечения части строки.
Эта функция использует следующий базовый синтаксис:
SUBSTR(Источник, Позиция, N)
куда:
- Источник : строка для анализа
- Позиция : начальная позиция для чтения
- N : количество символов для чтения
Вот четыре наиболее распространенных способа использования этой функции:
Метод 1: извлечение первых N символов из строки
data new_data;
set original_data;
first_four = substr (string_variable, 1 , 4 );
run ;
Метод 2: извлечение символов в определенном диапазоне позиций из строки
data new_data;
set original_data;
two_through_five = substr (string_variable, 2 , 4 );
run ;
Способ 3: извлечение последних N символов из строки
data new_data;
set original_data;
last_three = substr (string_variable, length (string_variable)- 2 , 3 );
run ;
Способ 4: создать новую переменную, если в строке существуют символы
data new_data;
set original_data;
if substr (string_variable, 1 , 4 ) = 'some_string ' then new_var = 'Yes ';
else new_var = 'No ';
run ;
В следующих примерах показано, как использовать каждый метод со следующим набором данных в SAS:
/\*create dataset\*/
data original_data;
input team $1-10;
datalines ;
Warriors
Wizards
Rockets
Celtics
Thunder
;
run ;
/\*view dataset\*/
proc print data =original_data;
Пример 1. Извлечение первых N символов из строки
Следующий код показывает, как извлечь первые 4 символа из переменной команды :
/\*create new dataset\*/
data new_data;
set original_data;
first_four = substr (team, 1 , 4 );
run ;
/\*view new dataset\*/
proc print data =new_data;
Обратите внимание, что переменная first_four содержит первые четыре символа переменной team .
Пример 2. Извлечение символов в определенном диапазоне позиций из строки
В следующем коде показано, как извлечь символы в позициях со 2 по 5 из переменной команды :
/\*create new dataset\*/
data new_data;
set original_data;
two_through_five = substr (team, 2 , 4 );
run ;
/\*view new dataset\*/
proc print data =new_data;
Пример 3. Извлечение последних N символов из строки
Следующий код показывает, как извлечь последние 3 символа из переменной команды :
/\*create new dataset\*/
data new_data;
set original_data;
last_three = substr (team, length (team)- 2 , 3 );
run ;
/\*view new dataset\*/
proc print data =new_data;
Пример 4: Создать новую переменную, если в строке есть символы
В следующем коде показано, как создать новую переменную с именем W_Team , которая принимает значение « да », если первым символом в названии команды является «W», или значение « нет », если первые символы не являются «W».
/\*create new dataset\*/
data new_data;
set original_data;
if substr (team, 1 , 1 ) = 'W ' then W_Team = 'Yes ';
else W_Team = 'No ';
run ;
/\*view new dataset\*/
proc print data =new_data;
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в SAS:
Как нормализовать данные в SAS
Как заменить символы в строке в SAS
Как заменить пропущенные значения нулем в SAS
Как удалить дубликаты в SAS