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;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.