I want to extract the first numeric substring that shows up in a character variable. For example,
data have;
infile datalines delimiter = "," missover;
input string $;
datalines;
abc 12345 &*ag21
bld#5432
8642 12 asd
kmdsf 657
run;
data want;
length string $30. substring $30.;
infile datalines dsd dlm='|' truncover ;
input string $ substring $;
datalines;
abc 12345 &*ag21|12345
bld#5432|5432
8642 12 asd|8642
kmdsf 657|657
run;Is there a good way to do this in a data step?
You want to look at PRXPOSN Function - Extracting First and Last Names
data have;
infile datalines delimiter = "," missover;
input string $;
datalines;
abc 12345 &*ag21
bld#5432
8642 12 asd
kmdsf 657
run;
data results ;
length string $30. substring $30.;
infile datalines dsd dlm='|' truncover ;
input string $ substring $;
datalines;
abc 12345 &*ag21|12345
bld#5432|5432
8642 12 asd|8642
kmdsf 657|657
run;
data wamt ;
retain patternID ;
set have ;
if _n_=1 then do ;
patternID=prxparse('/([0-9]+)/') ;
end ;
found=prxmatch(patternID,string) ;
want=prxposn(patternID,1,string) ;
put string= found= want= ;
run ;
You want to look at PRXPOSN Function - Extracting First and Last Names
data have;
infile datalines delimiter = "," missover;
input string $;
datalines;
abc 12345 &*ag21
bld#5432
8642 12 asd
kmdsf 657
run;
data results ;
length string $30. substring $30.;
infile datalines dsd dlm='|' truncover ;
input string $ substring $;
datalines;
abc 12345 &*ag21|12345
bld#5432|5432
8642 12 asd|8642
kmdsf 657|657
run;
data wamt ;
retain patternID ;
set have ;
if _n_=1 then do ;
patternID=prxparse('/([0-9]+)/') ;
end ;
found=prxmatch(patternID,string) ;
want=prxposn(patternID,1,string) ;
put string= found= want= ;
run ;
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and save with the early bird rate—just $795!
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.