BookmarkSubscribeRSS Feed
podarum
Quartz | Level 8

Hi, I'm trying to delete data that's within a bracket but keep the rest. 

Have:

NAME

Sammy (NL)

Don (DP)

Greg (OL)

Fred Donalson (DE)

St. George B (BW)

Want:

NAME

Sammy

Don

Greg

Fred Donaldson

St. George B

I tried this :

do i=1 to count (NAME,'(');

NAME2 = scan(NAME,i);

output;

end;

3 REPLIES 3
art297
Opal | Level 21

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;

Linlin
Lapis Lazuli | Level 10

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;

Ksharp
Super User
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

What is Bayesian Analysis?

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 3 replies
  • 1373 views
  • 0 likes
  • 4 in conversation