如何使用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函数查找字符xyz第一次出现的位置:

 /*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的新列显示字符xyz名称列中第一次出现的位置。

如果名称列中不存在这三个字符,则INDEXC函数仅返回值0

例如,从结果中我们可以看到:

第一行中 x、y 或 z 第一次出现的位置是位置4 。我们可以看到第一行第4位的字符是y

第二行中第一次出现 x、y 或 z 的位置为0 ,因为第二行名称中不存在这三个字母。

等等。

INDEX 和 INDEXC 函数之间的区别

SAS 中的INDEX函数返回特定子字符串在另一个字符串中第一次出现的位置。

以下示例说明了INDEXINDEXC函数之间的区别:

 /*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列显示字母smith名称列中第一次出现的位置。

例如,从结果中我们可以看到:

子字符串 ‘Smith’ 永远不会出现在名字中,因此index_smith返回值0

字母i出现在名字的第 7 个位置,因此indexc_smith返回值7

等等。

其他资源

以下教程介绍了如何使用 SAS 中的其他常用函数:

SAS中SUBSTR函数的使用方法
如何使用SAS中的COMPRESS函数
如何使用SAS中的FIND函数
SAS中COALESCE函数的使用方法

添加评论

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