如何使用sas中的findc功能


您可以使用 SAS 中的FINDC函数返回字符串中单个字符第一次出现的位置。

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

FINDC(字符串,坦克列表)

金子:

  • string : 要解析的字符串
  • charlist :要在中搜索的字符列表

下面的例子展示了如何在实际中使用这个功能。

示例:使用 SAS 中的 FINDC 函数

假设 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; 

我们可以使用FINDC函数查找字符xyz第一次出现的位置:

 /*find position of first occurrence of either x, y or z in name*/
data new_data;
    set original_data;
    first_xyz = findc (name, 'xyz');
run ;

/*view results*/
proc print data =new_data;

名为first_xyz的新列显示字符xyz名称列中第一次出现的位置。

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

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

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

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

等等。

FIND 和 FINDC 函数的区别

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

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

 /*create new dataset*/
data new_data;
    set original_data;
    find_smith = find (name, 'Smith');
    findc_smith = findc (name, 'Smith');
run ;

/*view new dataset*/
proc print data =new_data; 

find_smith列显示子字符串“Smith”在名称列中第一次出现的位置。

findc_smith列显示字母smith名称列中第一次出现的位置。

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

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

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

等等。

其他资源

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

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

添加评论

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