Transforming Data with SAS Functions | |
Modifying Character Values with
Functions![]() ![]() |
![]() |
Now let's use the SUBSTR function to replace the 622 exchange in the
variable Phone . You begin by writing this assignment statement:
data hrd.temp2; set hrd.temp; substr(phone,1,3)='433'; run; |
SAS Data Set Hrd.Temp
City | State | Zip | Phone | BeginDate | EndDate | PayRate | Days | Hours |
CARY | NC | 27513 | 6224549 | 14567 | 14621 | 10 | 11 | 88 |
CARY | NC | 27513 | 6223251 | 14524 | 14565 | 8 | 25 | 200 |
CHAPEL HILL | NC | 27514 | 9974749 | 14570 | 14608 | 40 | 26 | 208 |
This statement specifies that the new exchange 433 should be placed in
the variable Phone , starting at character position 1 and replacing
three characters.
data hrd.temp2; set hrd.temp; substr(phone,1,3)='433'; run;
But executing this DATA step places the value 433 into all values
of data hrd.temp2(drop=exchange); set hrd.temp; Exchange=substr(phone,1,3); substr(phone,1,3)='433'; run; |
Notice that the SUBSTR function appears on the right side of the assignment
statement to extract a substring from Phone . This DATA step
also needs an IF-THEN statement to verify the value of the
variable Exchange . If the exchange is 622, the assignment statement
executes to replace the value of Phone . |
data hrd.temp2(drop=exchange); set hrd.temp; Exchange=substr(phone,1,3); if exchange='622' then substr(phone,1,3)='433'; run; |
After the DATA step is executed, the appropriate values of
Phone contain the new exchange. |
SAS Data Set Hrd.Temp2
City | State | Zip | Phone | BeginDate | EndDate | PayRate | Days | Hours |
CARY | NC | 27513 | 4334549 | 14567 | 14621 | 10 | 11 | 88 |
CARY | NC | 27513 | 4333251 | 14524 | 14565 | 8 | 25 | 200 |
CHAPEL HILL | NC | 27514 | 9974749 | 14570 | 14608 | 40 | 26 | 208 |
Once again, remember the rules for using the SUBSTR function. If the
SUBSTR function appears on the right side of an assignment statement, the
function extracts a substring.
MiddleInitial=substr(middlename,1,1); If the SUBSTR function appears on the left side of an assignment statement, the function replaces the contents of a character variable. substr(region,1,3)='NNW'; |
![]() ![]() ![]() ![]() ![]() ![]() |
|
![]() |
![]() |
Copyright © 2002 SAS Institute Inc.,
Cary, NC, USA. All rights reserved.