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

2,175 阅读2分钟

你可以使用SAS中的SCAN 函数,从一个字符串中提取第n个字。

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

SCAN(string, count)

其中:

  • 字符串:要分析的字符串
  • count:要提取的第n个

下面是使用这个函数的三种最常见的方法。

方法1:从字符串中提取第n个

data new_data;
    set original_data;
    second_word = scan(string_variable, 2);
run;

方法2:从字符串中提取最后一个词

data new_data;
    set original_data;
    last_word = scan(string_variable, -1);
run;

方法3:从字符串中提取多个词

data new_data;
    set original_data;
    first_word = scan(string_variable, 1);
    second_word = scan(string_variable, 2);
    third_word = scan(string_variable, 3);
run;

下面的例子显示了如何在SAS中用下面的数据集来使用每种方法:

/*create dataset*/
data original_data;
    input name $20. sales;
    datalines;
Andy Lincoln Bernard 55
Barren Michael Smith 41
Chad Simpson Arnolds 13
Derrick Parson Henry 29
Eric Miller Johansen 47
Frank Giovanni Goode 61
;
run;

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

例子1:从字符串中提取第n个

下面的代码显示了如何从名字列的每个字符串中提取第二个词。

/*extract second word in each row of name column*/
data new_data;
    set original_data;
    second_word = scan(name, 2);
run;

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

SCAN function in SAS

注意,名为second_word的新列包含了名字列中每个字符串的第二个词。

例2:从字符串中提取最后一个词

下面的代码显示了如何使用scan函数中的值**-1来提取name**列中每个字符串的最后一个词。

/*extract last word in each row of name column*/
data new_data;
    set original_data;
    last_word = scan(name, -1);
run;

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

注意,名为last_word的新列包含了name列中每个字符串的最后一个单词。

例3:从字符串中提取多个单词

下面的代码显示了如何使用scan函数从name列中的每个字符串中提取每个单词。

/*extract each word in each row of name column*/
data new_data;
    set original_data;
    first_word = scan(name, 1);
    second_word = scan(name, 2);
    third_word = scan(name, 3);
run;

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

请注意,已经创建了三个新的列,它们包含姓名列中每个字符串的第一个、第二个和第三个词。