BookmarkSubscribeRSS Feed
llt34c
Calcite | Level 5

I need to replace missing values in my data set. I need SAS to reference the previous observation and calculate the date of the current observation based on the previous observation.

 


data Example; set Example1;
If Date = "." then do;
Date = Obs - 1 ....... Date+1;
Run;

 

Thanks.

2 REPLIES 2
rivieralad
Obsidian | Level 7

Hi

 

There is a LAG function in SAS that allows you to reference the value of a variable on the previous observation.

 

It is well documented and works along the lines of

 

If date = . then date = lag(date) + 1;

 

Cheers

 

Chris

PGStats
Opal | Level 21

Use a retained variable:

 

data want;
retain previousDate;
set have;
date = coalesce(date, intnx("DAY", previousDate, 1));
previousDate = date;
drop previousDate;
run;
PG

sas-innovate-wordmark-2025-midnight.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


Register now!

How to connect to databases in SAS Viya

Need to connect to databases in SAS Viya? SAS’ David Ghan shows you two methods – via SAS/ACCESS LIBNAME and SAS Data Connector SASLIBS – in this video.

Find more tutorials on the SAS Users YouTube channel.

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