Hello
I want to create a new variable called X_new.
The value in X_new will be as following:
Need to find the location of last alphabetic in variable X and then substr from one position after until the end.
Resulted values will be:
300125565
300057503
300088437
3000999
What is the way to calculate the new variable x_new?
Data have;
input X $30.;
cards;
A22318PKRZD300125565
A21312QFYJR300057503
A22093FZCCP300088437
ABCDEFG3000999
;
Run;
Data have;
input X $30.;
cards;
A22318PKRZD300125565
A21312QFYJR300057503
A22093FZCCP300088437
ABCDEFG3000999
;
Run;
data want;
set have;
x_new = scan(x, -1, , 'a');
run;
Result:
X x_new A22318PKRZD300125565 300125565 A21312QFYJR300057503 300057503 A22093FZCCP300088437 300088437 ABCDEFG3000999 3000999
Data have;
input X $30.;
cards;
A22318PKRZD300125565
A21312QFYJR300057503
A22093FZCCP300088437
ABCDEFG3000999
;
Run;
data want;
set have;
x_new = scan(x, -1, , 'a');
run;
Result:
X x_new A22318PKRZD300125565 300125565 A21312QFYJR300057503 300057503 A22093FZCCP300088437 300088437 ABCDEFG3000999 3000999
Catch the best of SAS Innovate 2025 — anytime, anywhere. Stream powerful keynotes, real-world demos, and game-changing insights from the world’s leading data and AI minds.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.