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

Hi,

I have a data set like this:

data trend;

  input tag $ @@;

  datalines;

  tr-c . . . tr-c tr-tr . . 

  ;

run;

In this data set, I like to assign the missing tag values as the previous value except that after the tag value become the 'tr-tr', all the following missing values should be 'tr'. To make it clear, I like the final data set look like this:

data trend;

  input tag $ @@;

  datalines;

  tr-c tr-c tr-c tr-c tr-c tr-tr tr tr 

  ;

run;

This can be implemented using retain statement and lag function, but I think there should be some smarter way to implement it.

Thanks.

1 ACCEPTED SOLUTION

Accepted Solutions
Haikuo
Onyx | Level 15

Try this:

data trend;

  input tag $ @@;

  length _tag $8;

  retain _tag ;

  _tag=coalescec(tag,_tag);

  if missing(tag) then tag=ifc(_tag='tr-tr','tr',_tag);

  drop _tag;

  datalines;

  tr-c . . . tr-c tr-tr . . 

  ;

run;

Haikuo

View solution in original post

2 REPLIES 2
Haikuo
Onyx | Level 15

Try this:

data trend;

  input tag $ @@;

  length _tag $8;

  retain _tag ;

  _tag=coalescec(tag,_tag);

  if missing(tag) then tag=ifc(_tag='tr-tr','tr',_tag);

  drop _tag;

  datalines;

  tr-c . . . tr-c tr-tr . . 

  ;

run;

Haikuo

Fisher
Quartz | Level 8

Excellent! I never tried this function, always learn something from SAS gurus here.

Thanks Hai.kuo.

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

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.

SAS Training: Just a Click Away

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

Browse our catalog!

Discussion stats
  • 2 replies
  • 1250 views
  • 0 likes
  • 2 in conversation