如何在SAS中使用INDEX函数(有例子)

1,489 阅读1分钟

你可以使用SAS中的INDEX 函数来返回一个字符串在另一个字符串中首次出现的位置。

这个函数使用以下基本语法。

INDEX(source, excerpt)

其中:

  • 。要分析的字符串
  • excerpt。要在源文件中搜索的字符串

下面的例子显示了如何在实践中使用这个函数。

例子:在SAS中使用INDEX函数

假设我们在SAS中拥有以下数据集,其中包含一列名字:

/*create dataset*/
data original_data;
    input name $25.;
    datalines;
Andy Lincoln Bernard
Barren Michael Smith
Chad Simpson Arnolds
Derrick Smith Henrys
Eric Millerton Smith
Frank Giovanni Goode
;
run;

/*view dataset*/
proc print data=original_data;

我们可以使用INDEX函数来搜索每一行中第一次出现的字符串 "Smith "的位置:

/*find position of first occurrence of 'Smith' in name*/
data new_data;
    set original_data;
    first_smith = index(name, 'Smith');
run;

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

新的名为first_smith的列显示名字列中第一次出现的字符串 "Smith "的位置。

如果根本没有找到'Smith',INDEX函数只是返回一个0的值。

值得注意的是,INDEX函数是区分大小写的,所以如果你搜索'smith',INDEX函数将为每个字符串返回0

/*find position of first occurrence of 'smith' in name*/
data new_data;
    set original_data;
    first_smith = index(name, 'smith');
run;

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

为了进行不区分大小写的搜索,你可以使用lowcase()函数,首先将每个字符串转换为所有小写字母,然后搜索'smith',如下所示。

/*find position of first occurrence of 'smith' in name*/
data new_data;
    set original_data;
    first_smith = index(lowcase(name), 'smith');
run;

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

通过首先将每个字符串转换为小写字母,我们能够使用INDEX函数来执行不区分大小写的搜索。