Thanks. What actually happens in each of the 4 do loops is a bit more elaborate than the sample I provided (but that works). Below a few rows of data (limited to Event_3 and Endpoint B, for brevity) OBS Event_1_type Event_1_drug Event_2_type Event_2_drug Event_3_type Event_3_drug 1 2 . . . . . 2 2 0 1 1 1 0 3 3 0 2 0 3 0 4 4 0 . . . . 5 1 0 . . . . What I want is: OBS Event_1_type Event_1_drug Event_2_type Event_2_drug Event_3_type Event_3_drug EP_A EP_A_ondrug EP_A_offdrug EP_B EP_B_ondrug EP_B_offdrug 1 2 0 . . . . 0 0 0 1 0 1 2 1 0 1 1 1 0 3 1 2 0 0 0 3 3 0 2 0 3 0 0 0 0 3 0 0 4 4 0 . . . . 0 0 0 0 0 0 5 1 0 3 0 . . 1 0 1 1 0 0 The first event for case 1 was 'type 2', which is part of endpoint B. It was not while using the drug; so EP_B_offdrug = 1 and EP_B_ondrug = 0. Case 2 had 3 events, all from 'type 1'. Type 1 is part of endpoint A. The second one was while using the drug, the other two not, hence EP_A_ondrug = 1 and EP_A_offdrug = 2 Case 4 had a type 4 event, which is not part of endpoint A or B, hence the zero's. It is very hard to make much suggestion regarding &eventtype as you don't show where it is assigned or created. Sorry about that. I've removed the syntax in which I tried to assign it, since it didn't work. You can see my comment on where it was. I want to link a certain endpoint with a string(?) of numbers to be put in as arguments for the IN in line If Event_&i._type IN(&eventtype.) then. To put it differently, I want this (very much shortened, there are more endpoints and more eventtypes) to happen: while ep = eventtype = submitted code A 1 ... If Event_&i._type IN(1) then .... B 2,3 ... If Event_&i._type IN(2,3) then ... C 1,2,3,4 ... If Event_&i._type IN(1,2,3,4) then ... Where the value of the eventtype macro variable are used to see if Event_&i._type corresponds to the event types I'm looking for.
... View more