Dear all,
In a by group I have missing values in variable STATUS for various Trade_Quarters.
I would like to replace the STATUS missing values based on the following:
If STATUS = 'C' (=cancelled) then if any SUBSEQUENT TRADE_QUARTERS take STATUS ='C'
If STATUS = 'C' (=cancelled) then if any PRIOR TRADE_QUARTERS take STATUS = 'V' (=Valid)
If there is no STATUS = 'C' then ALL values of STATUS become = 'V'
Pls. see data HAVE and WANT in the attached file.
Thanking you in advance for any hint.
Kind regards
Nikos
just a typo
in the last by group: where 'O' should be replaced with 'V'
Thank you
Check this *** Not tested
Data new ;
infile datalines dlm=',';
input STATUS $;
datalines;
C,
C,
,
V,
V,
,
,
V,
,
C,
,
,
;
run;
data newC;
retain newV ' ';
set new;
if _n_=1 and STATUS = ' ' then Do ;
*STATUS = 'V';
newV='V';
End;
Else if STATUS in ('C','V') then newV=STATUS;
*Else if STATUS=' ' then STATUS=newV;
run;
the previous one to see the change but the final code should be like the following"
data newC (drop=newV );
retain newV ' ';
set new;
if _n_=1 and STATUS = ' ' then Do ;
STATUS = 'V';
newV=STATUS;
End;
Else if STATUS in ('C','V') then newV=STATUS;
Else if STATUS=' ' then STATUS=newV;
run;
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.