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!
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
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.