Help using Base SAS procedures

Parsing a file

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 10
Accepted Solution

Parsing a file

I have:

National_Code National_Title Superseded_By_Code
RVE20104 Diploma of Aeronotics AZC20210, AZC20110
TTE30803 Diploma of Aeronotics AZC30110, AZC32010

 

I want:

National_Code National_Title Superseded_By_Code
RVE20104 Diploma of Aeronotics AZC20210
RVE20104 Diploma of Aeronotics AZC20110
TTE30803 Diploma of Aeronotics AZC30110
TTE30803 Diploma of Aeronotics AZC32010

 

Can you please write me some code in SAS SQL or BASE SAS?

Many thanks

Gwin 


Accepted Solutions
Solution
‎12-09-2016 02:39 PM
Super User
Posts: 5,082

Re: Parsing a file

Within a DATA step:

 

data want;

set have;

do _n_=1 to countw(Superseded_by_Code);

   new_code = scan(Superseded_by_Code, _n_);

   output;

end;

drop Superseded_by_Code;

rename new_code=Superseded_by_Code;

run;

 

View solution in original post


All Replies
Super User
Posts: 10,500

Re: Parsing a file

[ Edited ]
data want; 
   set have;
   temp=superseded_by_code;
   superseded_by_code= scan(temp,1);
   output;
   superseded_by_code= scan(temp,2);
   output;
   drop temp;
run;

@Astounding's approach is more flexible if you have more than 2 codes to split out. 

Solution
‎12-09-2016 02:39 PM
Super User
Posts: 5,082

Re: Parsing a file

Within a DATA step:

 

data want;

set have;

do _n_=1 to countw(Superseded_by_Code);

   new_code = scan(Superseded_by_Code, _n_);

   output;

end;

drop Superseded_by_Code;

rename new_code=Superseded_by_Code;

run;

 

Occasional Contributor
Posts: 10

Re: Parsing a file

Thank you very much Smiley Happy
☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

Discussion stats
  • 3 replies
  • 177 views
  • 1 like
  • 3 in conversation