BookmarkSubscribeRSS Feed
deleted_user
Not applicable
data xx;
input usubjid visit result $ 5;
cards;
1 1 a
1 2 a
1 3 n
2 1 n
2 2 n
2 3 n
;
run;

if usubjid having any one of the visit, result=a then that usubjid should have new variable x='a' other wise usubjid should have x='n'.

example:

above data set will be having below output:

usubjid x
1 a
2 n

To get this output please give me some sas code.
2 REPLIES 2
deleted_user
Not applicable
data xx;
input usubjid visit result $ 5;
cards;
1 1 a
1 2 a
1 3 n
2 1 n
2 2 n
2 3 n
;
run;

proc sort data=xx;
by usubjid result;
run;

data xxxx;
set xx;
by usubjid result;
if first.usubjid and first.result and result='a' then x='a';
else x='n';
keep usubjid x;
if first.usubjid and first.result;
run;


Try this it will work.
sbb
Lapis Lazuli | Level 10 sbb
Lapis Lazuli | Level 10
A more general-purpose code logic would be to use IF FIRST.usubjid THEN DO; END; logic to test initialize a "temporary" SAS variable to the desired no-match condition, and use a RETAIN to keep track of this variable, and if the desired "match" condition is encountered for the "test" variable, set the "temporary" variable to a given value. The, use the IF LAST.usubjid THEN DO; END; logic to reset RESULT to the temporary variable and do an OUTPUT.

This logic flow does not require a particular sort-sequence or "match" value order condition to work properly. The key here is using the RETAIN statement to track a temporary variable in the DATA step (remember to either DROP this var or specify a KEEP statement).

Scott Barry
SBBWorks, Inc.

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

Health and Life Sciences Learning

 

Need courses to help you with SAS Life Sciences Analytics Framework, SAS Health Cohort Builder, or other topics? Check out the Health and Life Sciences learning path for all of the offerings.

LEARN MORE

Discussion stats
  • 2 replies
  • 1592 views
  • 0 likes
  • 2 in conversation