Hi,
I have used array statement to change the wide format to long format for a dataset. I created a dataset excluding the missing values of hwt variable. In addition, I want to output the list of subjects missing variable hwt as a separate dataset.
data patient1;
set patrecord;
array cal(i):smileyinfo: hwt1 hwt2 hwt3 hwt4;
do over cal;
day = i;
hwt=cal;
IF missing(cal) THEN delete;
output;
end;
keep ID day hwt;
run;
Any suggestions, please!
Is something like this what you are looking for?
data patient1
missinghwt (keep= PatienIdVariable day)
;
set patrecord;
array cal(i) hwt1 hwt2 hwt3 hwt4;
do over cal;
day = i;
hwt=cal;
IF missing(cal) THEN output missinghwt;
else output patient1;
end;
keep ID day hwt;
run;
A sample of desired output would help. And how do you define "subject".
But it shoulnd't much more than having a second data set defined in the data statement, and have two different output statements (rather than the delete?).
I agree with Linus: a sample of the desired output would definitely help.
Do you realize that your current code stops working on a record as soon as it finds a missing value?
Is something like this what you are looking for?
data patient1
missinghwt (keep= PatienIdVariable day)
;
set patrecord;
array cal(i) hwt1 hwt2 hwt3 hwt4;
do over cal;
day = i;
hwt=cal;
IF missing(cal) THEN output missinghwt;
else output patient1;
end;
keep ID day hwt;
run;
Thank you all ! That additional statement works!
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.