There are a number of ways. If you only have the one set of parentheses in each string, probably the easiest would be a slight modification of what you tried:
data have;
informat name $30.;
input name &;
cards;
Sammy (NL)
Don (DP)
Greg (OL)
Fred Donalson (DE)
St. George B (BW)
;
data want;
set have;
name=scan(name,-2,'(');
run;
another way:
data have;
informat name $30.;
input name &;
cards;
Sammy (NL)
Don (DP)
Greg (OL)
Fred Donalson (DE)
St. George B (BW)
;
data want;
set have;
name=substr(name,1,find(name,'(')-1);
run;
proc print;
run;
data have;
informat name $30.;
input name &;
cards;
Sammy (NL)
Don (DP)
Greg (OL)
Fred Donalson (DE)
St. George B (BW)
;
run;
data want;
set have;
a=prxchange('s/\(\w+\)/ /',-1,name);
run;
Ksharp
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 lock in 2025 pricing—just $495!
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.