When flag is equal to one how to replace missing value by 20230127 ?
data test;
input flag $ date $;
datalines;
0 20250128
0 20250128
0 20250127
0 20250127
0 20250127
0 20250127
0 20250127
1 .
1 .
1 .
1 .
1 .
1 .
1 .
1 .
1 .
1 .
0 20250124
0 20250124
0 20250124
0 20250124
0 20250124
;
run;
To replace "by last value", which is NOT 20230127 in your example data set:
data want; set test; length d $ 8; retain d; if not missing(date) then d=date; if flag='1' then date=d; run;
Retain keeps the value of a variable across data step boundaries. So create a new variable to hold the value with retain when assigned and then use the value as needed.
Anything called a "date" that is character is asking for all sorts of difficulty in working with.
To replace "by last value", which is NOT 20230127 in your example data set:
data want; set test; length d $ 8; retain d; if not missing(date) then d=date; if flag='1' then date=d; run;
Retain keeps the value of a variable across data step boundaries. So create a new variable to hold the value with retain when assigned and then use the value as needed.
Anything called a "date" that is character is asking for all sorts of difficulty in working with.
Save $250 on SAS Innovate and get a free advance copy of the new SAS For Dummies book! Use the code "SASforDummies" to register. Don't miss out, May 6-9, in Orlando, Florida.
Check out this tutorial series to learn how to build your own steps in SAS Studio.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.