BookmarkSubscribeRSS Feed
grayskillen
Calcite | Level 5

I have a dataset related to kidney transplants and each donor has a donor id and both the left and right kidneys are tied to that donor id. 

 

I need to create a binary variable called 'discard' (0=no, 1=yes) that is a composite of left and right kidney dispositions. 

 

Currently I have the variables:

donor_id

r_disp (5=discard, 6=transplant)

l_disp (5=discard, 6=transplant)

 

How do I create a variable called "discard" that will be a composite indicator of r_disp and l_disp so that I can investigate the odds of discard overall? 

 

 

6 REPLIES 6
ballardw
Super User

If r_disp and l_disp are on the same record in a data step:

(flag if either are discarded)

discard = (r_disp=5 or l_disp=5);

 

(flag if BOTH are discarded)

discard = (r_disp=5 and l_disp=5);

mohamed_zaki
Barite | Level 11

Could you give example of the data you have ?

grayskillen
Calcite | Level 5
A single observation will show data for the following variables (among others):

Donor_id
r_disp (fate of right kidney)
L_disp (fate of left kidney)
Kdri (measure of kidney quality)

Donor_id is the index variable.

I want to run a proc logistic to investigate the odds of discard but I only have discard data by left and right. So I need to combine them someone into one discard variable for analysis.


mohamed_zaki
Barite | Level 11

Yes, what your logic ?

 

if both of them are diecard then discard =1 

or

if any one of them is dicard then discard=1

mohamed_zaki
Barite | Level 11

data have ; input ID r_disp l_disp; cards; 111 5 5 112 6 6 113 5 6 114 6 6 ; run; data want ; set have; if r_disp=5 and l_disp=5 then discard=1; else discard =0; run;

That is example.

If you want discard to equal 1 if the right or the left is discard then change the "and" to "or" in the IF condition.

Steelers_In_DC
Barite | Level 11

The logic of discard or not isn't clear but something like this seems right:

 

data have;
input ID$ r_disp$ l_disp$;
cards;
1 5 5
2 5 6
3 6 5
4 6 6
;run;

data want;
set have;
if r_disp = '6' or l_disp = '6' then Discard = '0';
else discard = '1';
run;

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 6 replies
  • 2510 views
  • 0 likes
  • 4 in conversation