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

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

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
  • 2144 views
  • 0 likes
  • 4 in conversation