create composite variable

Reply
New Contributor
Posts: 2

create composite variable

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? 

 

 

Grand Advisor
Posts: 10,210

Re: create composite variable

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);

Super Contributor
Posts: 490

Re: create composite variable

Could you give example of the data you have ?

New Contributor
Posts: 2

Re: create composite variable

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.


Super Contributor
Posts: 490

Re: create composite variable

Yes, what your logic ?

 

if both of them are diecard then discard =1 

or

if any one of them is dicard then discard=1

Super Contributor
Posts: 490

Re: create composite variable


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.

Valued Guide
Posts: 854

Re: create composite variable

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;

Ask a Question
Discussion stats
  • 6 replies
  • 450 views
  • 0 likes
  • 4 in conversation