如何使用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函数查找字符x 、 y或z第一次出现的位置:
/*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的新列显示字符x 、 y或z在名称列中第一次出现的位置。
如果名称列中不存在这三个字符,则FINDC函数仅返回值0 。
例如,从结果中我们可以看到:
第一行中 x、y 或 z 第一次出现的位置是位置4 。我们可以看到第一行第4位的字符是y 。
第二行中第一次出现 x、y 或 z 的位置为0 ,因为第二行名称中不存在这三个字母。
等等。
FIND 和 FINDC 函数的区别
SAS 中的FIND函数返回特定子字符串在另一个字符串中第一次出现的位置。
以下示例说明了FIND和FINDC函数之间的区别:
/*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列显示字母s 、 m 、 i 、 t或h在名称列中第一次出现的位置。
例如,从结果中我们可以看到:
子字符串 ‘Smith’ 永远不会出现在名字中,因此find_smith返回值0 。
字母i出现在名字的第 7 个位置,因此findc_smith返回值7 。
等等。
其他资源
以下教程介绍了如何使用 SAS 中的其他常用函数: