DATA Step, Macro, Functions and more

Pick variables in different combinations

Reply
Regular Contributor
Posts: 181

Pick variables in different combinations

Is there any way we can use variables in different combinations in a macro? For example, there are 3 variables - Var 1 Var2 Var3.

Possible combinations i would like to make ---

Var1

Var2

Var3

Var1 Var2

Var1 Var3

Var2 Var3

Var1 Var2 Var3

Order does not matter (Var1 Var2 Var3 and Var2 Var1 Var3 - Same).

Super User
Posts: 17,750

Re: Pick variables in different combinations

What do you mean by use variables in different combination?

Regular Contributor
Posts: 181

Re: Pick variables in different combinations

What i really want to accomplish - Look at the macro below . In this case, it is selecting variables one by one and testing it as an independent variable in single linear regression model. I want the different combinations of variables to be used and testing it as independent variables in regression model.

%macro regcomb ( input =, depvar =, vars=);

%let n=%sysfunc(countw(&vars));

%do i=1 %to &n;

%let val = %scan(&vars,&i);

ods select none;

ods output ParameterEstimates=Estimate&i;

proc reg data = input;

model &depvar. = &val.;

run;

data &output;

set Estimate1 - Estimate&n;

run;

%mend;

Super User
Posts: 10,466

Re: Pick variables in different combinations

Look at the results of this and the VARLIST macro variable.

%macro test;

   %let v1= Var1;

   %let v2= Var2;

   %let v3= Var3;

   %let v4= Var4;

   %let v5= Var5;

   %do k=1 %to 3;

      %let ncomb=%sysfunc(comb(5,&k));

      %do j=1 %to &ncomb;

         %syscall allcomb(j, k, V1, V2, V3, V4, V5);

         %let varlist=;

         %do i = 1 %to &k; %let varlist=&varlist  &&V&i; %end ;

         %put &varlist;

      %end;/*j loop*/

   %end;/*k loop*/

%mend;

    

%test

Regular Contributor
Posts: 181

Re: Pick variables in different combinations

Thanks Ballardw. I will try and let you know about it. You are always a great help. I bow down to you :-)

Super User
Posts: 10,466

Re: Pick variables in different combinations

I would start by looking in the online documentation for the Call Allcomb function which has an example of use within a macro.

PROC Star
Posts: 1,088

Re: Pick variables in different combinations

PROC PLAN does this kind of thing also.

Tom

New Contributor
Posts: 4

Re: Pick variables in different combinations

This might not be what you are after but this sort of does what you ask for.

data Vars;

input Variables $ ;

cards;

Var1

Var2

Var3

;

proc sql;

select *

from Vars as a, vars as b, vars as c

;

quit;

The proc sql does a self join and you get all combinations. Maybe you can work towards your goal from this.

Ask a Question
Discussion stats
  • 7 replies
  • 330 views
  • 0 likes
  • 5 in conversation