如何使用sas中的indexc函数
您可以使用 SAS 中的INDEXC函数返回字符串中单个字符第一次出现的位置。
该函数使用以下基本语法:
索引(来源、摘录)
金子:
- 来源:分析渠道
- extract :要在源中搜索的字符串
下面的例子展示了如何在实际中使用这个功能。
示例:使用 SAS 中的 INDEXC 函数
假设 SAS 中有以下数据集,其中包含一列名称:
/*create dataset*/
data original_data;
input name $25.;
datalines ;
Andy Lincoln Bernard
Michael Smith
Chad Simpson Arnolds
Derrick Smith Henrys
Eric Millerton Smith
Frank Giovanni Goode
;
run ;
/*view dataset*/
proc print data = original_data;
我们可以使用INDEXC函数查找字符x 、 y或z第一次出现的位置:
/*find position of first occurrence of either x, y or z in name*/
data new_data;
set original_data;
first_xyz = indexc (name, 'xyz');
run ;
/*view results*/
proc print data = new_data;
名为first_xyz的新列显示字符x 、 y或z在名称列中第一次出现的位置。
如果名称列中不存在这三个字符,则INDEXC函数仅返回值0 。
例如,从结果中我们可以看到:
第一行中 x、y 或 z 第一次出现的位置是位置4 。我们可以看到第一行第4位的字符是y 。
第二行中第一次出现 x、y 或 z 的位置为0 ,因为第二行名称中不存在这三个字母。
等等。
INDEX 和 INDEXC 函数之间的区别
SAS 中的INDEX函数返回特定子字符串在另一个字符串中第一次出现的位置。
以下示例说明了INDEX和INDEXC函数之间的区别:
/*create new dataset*/
data new_data;
set original_data;
index_smith = index (name, 'Smith');
indexc_smith = indexc (name, 'Smith');
run ;
/*view new dataset*/
proc print data =new_data;
index_smith列显示子字符串“Smith”在名称列中第一次出现的位置。
indexc_smith列显示字母s 、 m 、 i 、 t或h在名称列中第一次出现的位置。
例如,从结果中我们可以看到:
子字符串 ‘Smith’ 永远不会出现在名字中,因此index_smith返回值0 。
字母i出现在名字的第 7 个位置,因此indexc_smith返回值7 。
等等。
其他资源
以下教程介绍了如何使用 SAS 中的其他常用函数:
SAS中SUBSTR函数的使用方法
如何使用SAS中的COMPRESS函数
如何使用SAS中的FIND函数
SAS中COALESCE函数的使用方法