Desktop productivity for business analysts and programmers

SAS EG - Completing missing values by previous value

Reply
New Contributor Mto
New Contributor
Posts: 3

SAS EG - Completing missing values by previous value

Hello,

 

Is it possible to fill in the missing values with the previous value, using SAS EG without editing the code manually?

 

a b

1 8

4 10

5 12

 

should be

a b

1 8

2 8

3 8

4 10

5 12

 

Thanks in advance!

Super User
Posts: 19,105

Re: SAS EG - Completing missing values by previous value

Not easily...the fastest way is to write a data step. 

Super User
Posts: 7,424

Re: SAS EG - Completing missing values by previous value

This is beyond the scope of the wizards in EG.

 

Try

 

data want;
set have;
retain oldb;
if b = . then b = oldb;
oldb = b;
drop oldb;
run;

(asssuming that b is a numeric variable)

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
New Contributor Mto
New Contributor
Posts: 3

Re: SAS EG - Completing missing values by previous value

Thank you Kurt.

 

(As a 'noob') where can I insert this code?

And what if 'b' is not a numeric value?

 

Thanks in advance,

Maarten

Super User
Posts: 7,424

Re: SAS EG - Completing missing values by previous value

The missing value for a string is the empty string, most often represented as '' or "" (single or double quotes with nothing or just blanks in between).

 

The code transforms the existing data set "have" into the new dataset "want", which is the typical generic nomenklatura for datasets in examples here.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
Super User
Posts: 7,424

Re: SAS EG - Completing missing values by previous value

And, as further advice: if you want to continue working with SAS, basic skills in data step and procedure coding are indispensable. Probably the best starting point is here:

SAS(R) 9.4 Language Reference: Concepts

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
New Contributor Mto
New Contributor
Posts: 3

Re: SAS EG - Completing missing values by previous value

Thank you very much, Kurt!

I will definitely follow your advice to learn more about data step and procedure coding Smiley Happy

 

For now, can you help with the question where I should add the 'data-want' code?

 

 

Super User
Posts: 7,424

Re: SAS EG - Completing missing values by previous value

As far as I can infer from the postings up to now, you somehow get a SAS dataset with missng values, which you want to have corrected.

Let's assume this dataset is found in your SAS environment as XXXX.YYYY (XXXX being a library, and YYYY being the dataset name).

You need to find the spot in your existing code (nothing in SAS is done without SAS code), and then you can add my code snippet. If you replace "have" and "want" with XXXX.YYYY, you get a step that rewrites the dataset "in place" with the corrected values.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
Ask a Question
Discussion stats
  • 7 replies
  • 413 views
  • 0 likes
  • 3 in conversation