I have data set with 10 binary variables (var1-var10), and about 300 observations.
I want to output 9 data sets:
Data set 1: all combinations of the 10 variables taken 2 variables at a time (10 choose 2), so 45 rows
Data set 2: 10 choose 3, so 120 rows
....
Data set 9: 10 choose 10, so just 1 row
Each data set will include all var1-var10, and percent variable that shows how many observations =1 for each combination in data.
For example (for data set of 10 choose 2):
var1 var2 var3 .... var10 Percent
1 1 3% (percent of 300 observations where var1=1 and var2=1)
1 1 70%
1 1 5%
.... showing all possible combinations of 10 choose 2
Best way to do this, and can be applied to larger number of variables that would produce larger data sets (i.e. 30 variables, taken 15 at a time = >150 million obs)?
hi ,
heres the code which wil generate multiple tables based on no of 1's present in row:
data test;
input a1-a10;
count=sum(of a1-a10);
cards;
1 1 . . . . . . . .
1 1 1 . . . . . . .
1 1 1 1 . . . . . .
1 . . . . . . 1 . .
1 1 1 1 . . . . . .
1 1 1 1 . . . . . .
1 1 1 1 1 . . . . .
1 1 1 1 1 1 . . . .
1 1 1 1 1 1 1 . . .
1 1 1 1 1 1 1 1 . .
1 . . . 1 . . . 1 .
1 1 1 1 1 1 1 1 1 .
1 1 1 1 1 1 1 1 1 1
;
%macro multi;
%do i=1 %to 10;
data table&i(drop=count);
set test;
if count=&i;
run;
%end;
%mend;
%multi;
PROC PLAN is in SAS/STAT software.
Thanks Rick! After seeing your note I corrected it on my original post.
Art
Does this example model your data and desired output? I do not understand exactly the starting point.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Check out this tutorial series to learn how to build your own steps in SAS Studio.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.