Sas:如何按分隔符分割字符串


您可以使用 SAS 中的scan()函数根据特定分隔符快速分割字符串。

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

示例:在 SAS 中按分隔符分割字符串

假设我们在 SAS 中有以下数据集:

 /*create dataset*/
data my_data1;
    input name $25.;
    datalines ;
Andy_Lincoln_Bernard
Barry_Michael
Chad_Simpson_Smith
Derrick_Parson_Henry
Eric_Miller
Frank_Giovanni_Goodwill
;
run ;

/*print dataset*/
proc print data =my_data1;

我们可以使用以下代码将名称字符串快速拆分为三个单独的字符串:

 /*create second dataset with name split into three columns*/
data my_data2;
set my_data1;
    name1= scan (name, 1 , '_');
    name2= scan (name, 2 , '_');
    name3= scan (name, 3 , '_');
run ;

/*view second dataset*/
proc print data =my_data2; 

请注意,名称列字符串已分为三个新列。

对于只有一个分隔符的名称, name3列中的值为空。

请注意,我们还可以使用drop函数从新数据集中删除原始名称列:

 /*create second dataset with name split into three columns, drop original name*/
data my_data2;
set my_data1;
    name1= scan (name, 1 , '_');
    name2= scan (name, 2 , '_');
    name3= scan (name, 3 , '_');
    dropname ;
run ;

/*view second dataset*/
proc print data =my_data2; 

其他资源

以下教程解释了如何在 SAS 中执行其他常见任务:

如何标准化 SAS 中的数据
如何在SAS中重命名变量
SAS中如何删除重复项
SAS中如何用零替换缺失值

添加评论

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