你可以使用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;

注意,名为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;

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