BookmarkSubscribeRSS Feed
knveraraju91
Barite | Level 11

Dear,

For sorting a dataset I need to populate the decod values all relavent OBS . Please help. Thank you very much

 

output needed;

Bodsys     decod         sev 

blsd                            mild
blsd                          moderate
blsd                          severe
blsd        anae
blsd       anae           mild
blsd     anae             moderate
blsd      anae            severe
blsd       lymp
blsd      lymp             mild
blsd      lymp           moderate
blsd      lymp             severe
;

data one;
input bodsys $4. +1 decod $4. +1 sev $8.;
datalines;
blsd      mild
blsd      moderate
blsd      severe
blsd anae  
blsd      mild
blsd      moderate
blsd      severe
blsd lymp 
blsd      mild
blsd      moderate
blsd      severe
;
3 REPLIES 3
art297
Opal | Level 21
data want (drop=hold);;
  set one;
  retain hold;
  if not missing(decod) then hold=decod;
  decod=hold;
run;

Art, CEO, AnalystFinder.com

 

knveraraju91
Barite | Level 11

Dear,

 

Thank you very much for the code.You code works for me for the sample data I posted. But if the bodsys values increase it is not getting the output i need.

 In the below example, The decod value='lymph' is populating for next OBS where bodsys='clsd'

Output needed;

 

output needed;

Bodsys     decod         sev 

blsd                            mild
blsd                          moderate
blsd                          severe
blsd        anae
blsd       anae           mild
blsd     anae             moderate
blsd      anae            severe
blsd       lymp
blsd      lymp             mild
blsd      lymp           moderate
blsd      lymp             severe

clsd                            mild
clsd                          moderate
clsd                          severe
clsd       cnae
clsd      cnae           mild
clsd     cnae            moderate

clsd     cnae            severe

 


data one; input bodsys $4. +1 decod $4. +1 sev $8.; datalines; blsd mild blsd moderate blsd severe blsd anae blsd mild blsd moderate blsd severe blsd lymp blsd mild blsd moderate blsd severe clsd mild clsd moderate clsd severe clsd cnae blsd mild blsd moderate blsd severe ;

data want;
set one;
retain hold;
if not missing(decod) then hold=decod;
decod=hold;
run;

 

output getting;

Bodsys     decod         sev 

blsd                            mild
blsd                          moderate
blsd                          severe
blsd        anae
blsd       anae           mild
blsd     anae             moderate
blsd      anae            severe
blsd       lymp
blsd      lymp             mild
blsd      lymp           moderate
blsd      lymp             severe

clsd      lymp             mild
clsd     lymp              moderate
clsd     lymp              severe
clsd       cnae
clsd      cnae           mild
clsd     cnae            moderate

clsd     cnae            severe

art297
Opal | Level 21

You didn't show what you want in such a situation, but it might be:

data want (drop=hold);
 set one;
 length hold $4;
 by bodsys notsorted;
 retain hold;
 if first.bodsys then call missing(hold);
 if not missing(decod) then hold=decod;
 decod=hold;
run;

Art, CEO, AnalystFinder.com

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 3 replies
  • 783 views
  • 3 likes
  • 2 in conversation