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-2024.png

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.

 

Register now!

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

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