BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Naveen45
Fluorite | Level 6

I have data in this format,

datalines

 sriram bhayagari gsr4455

naveen gsr5566 allapuram

gsr6677 srinath thatipathri

 

 

 

need output like 

 

Emp Name                  ID

 

Sriram bhayagari            4455

Naveen allapuram          5566

srinath thatiparthi            6677

1 ACCEPTED SOLUTION

Accepted Solutions
andreas_lds
Jade | Level 19

Use compress-function to get the id, than remove "gsr"+id from line to get EmpName.

data want;
   length 
      EmpName $ 100 
      Id $ 4
   ;
   input;

   Id = compress(_infile_, ' ', 'dkt');
   EmpName = strip(compbl(transtrn(_infile_, cats('gsr', Id), '')));

   datalines;
sriram bhayagari gsr4455
naveen gsr5566 allapuram
gsr6677 srinath thatipathri
;
run;

View solution in original post

2 REPLIES 2
andreas_lds
Jade | Level 19

Use compress-function to get the id, than remove "gsr"+id from line to get EmpName.

data want;
   length 
      EmpName $ 100 
      Id $ 4
   ;
   input;

   Id = compress(_infile_, ' ', 'dkt');
   EmpName = strip(compbl(transtrn(_infile_, cats('gsr', Id), '')));

   datalines;
sriram bhayagari gsr4455
naveen gsr5566 allapuram
gsr6677 srinath thatipathri
;
run;
Jagadishkatam
Amethyst | Level 16

try the perl expression

 

data have;
input name &:$200.;
id=strip(prxchange('s/(.*)(gsr)(\d+)(.*)/$3/',-1,name));
Emp_Name=strip(prxchange('s/(.*)(gsr\d+)(.*)/$1$3/',-1,name));
cards;
sriram bhayagari gsr4455
naveen gsr5566 allapuram
gsr6677 srinath thatipathri
;
Thanks,
Jag
How to Concatenate Values

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.

SAS Training: Just a Click Away

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

Browse our catalog!

Discussion stats
  • 2 replies
  • 1088 views
  • 0 likes
  • 3 in conversation