DATA Step, Macro, Functions and more

Simple macro for interaction

Reply
Contributor
Posts: 44

Simple macro for interaction

[ Edited ]

I would like to test for interactions between variable A and a set of variables (B1-B10).

In the program below, I create the interaction term (A*B) in the data step, then use the interaction term in the proc logistic step.  

Could someone please suggest a macro that would help me test all ten interactions? Thank you.

 

data new;

set have;
int=A*B;
run;


    proc logistic data=new;
        model event= A B int;
    run;

 

I've tried this:

 

data new;
set have;

x='B1';
call symput('var',x);
int=A*&var ;
run;

    proc logisitc data=new;
        model event = &var A int;
    run;

 

However, I seem to get different results if I run the same program twice.

Super User
Posts: 19,855

Re: Simple macro for interaction

Super User
Posts: 5,516

Re: Simple macro for interaction

Assuming that LOGISTIC has no options to simplify the task, you can create the interactions without using macros:

 

data want;

   set have;

   array original {10} B1-B10;

   array inters    {10} inter_1 - inter_10;

   do _k_=1 to 10;

      inters{_k_} = A * original{_k_};

   end;

run;

 

proc logistic data=want;

   model event = A B1-B10 inter_1 - inter_10;

run;

 

Ask a Question
Discussion stats
  • 2 replies
  • 168 views
  • 1 like
  • 3 in conversation