如何在 sas 中使用 substr 函数(附示例)


您可以使用 SAS 中的SUBSTR函数来提取字符串的一部分。

该函数使用以下基本语法:

SUBSTR(源、位置、N)

金子:

  • 来源:分析渠道
  • Position : 读取的起始位置
  • N :要读取的字符数

以下是使用此功能的四种最常见方法:

方法一:提取字符串的前N个字符

 data new_data;
    set original_data;
    first_four = substr (string_variable, 1 , 4 );
run ;

方法二:从字符串中提取特定位置范围内的字符

 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 个字符

以下代码显示如何从team变量中提取前 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:从字符串中提取特定位置范围内的字符

以下代码显示如何从team变量的位置 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 个字符

以下代码显示了如何从team变量中提取最后 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”,则该变量的值为“ yes ”;如果第一个字符不是“W”,则该变量的值为“ no ”。

 /*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中如何删除重复项

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注