使用SAS分隔不同长度的字符串

时间:2016-02-01 01:25:59

标签: string sas data-manipulation

让我说我有数据如:

Score
6.2/30
10/30
19/30
3.4/30 

我想分开数据,这样一列就像6.2,另一列就像30 像

这样的东西
Score(1st column):             
6.2                    
10     

Out of(2nd Column):
30

目前我的数据代码如下所示:

DATA grades;
SET Work.grades;
STRING1=grades_MMSE_Score_on_admit;
TEST3 = SUBSTR(STRING1,1,3);
RUN;

PROC PRINT DATA=grades;
VAR TEST3;
RUN;

我可以将它分开,但问题是对于具有小数的数据点,结束位置是不同的。我如何处理这样的数据?

1 个答案:

答案 0 :(得分:3)

使用SCAN()功能。

score=scan(grades_MMSE_Score_on_admit,1,'/');
out_of=scan(grades_MMSE_Score_on_admit,2,'/');

但您可能希望将它们转换为数字。

score=input(scan(grades_MMSE_Score_on_admit,1,'/'),32.);
out_of=input(scan(grades_MMSE_Score_on_admit,2,'/'),32.);