SAS rulegen DMDB encoded type

607 Views Asked by At

I am trying to run example code from SAS proc rulegen documentation:

proc dmdb batch data=sampsio.assocs out=dmassoc dmdbcat=catassoc;
 id customer;
 class product(desc);
run;

proc assoc data=dmassoc dmdbcat=catassoc
 out=datassoc(label='Output from Proc Assoc')
 items=5 support=20;
 cust customer;
 target product;
run;

First part works well, but second gives an error:

The data= dataset should not be DMDB encoded type

Does anyone know what the problem is?

I got the same error working with my data.

I also tried to use proc assoc with not dmdb data and it "worked" but generated only one obvious rule (there should be many more rules according to sas example and no obvious rules).

1

There are 1 best solutions below

0
On

I encountered the same problem, I did the below to resolve it.

In below data= statement you should give sas dataset sampsio.assocs, instead of dmassoc.

"proc assoc data=sampsio.assocs"

Also when you run proc dmdb make sure you are declaring all continuous variables using "var" statement & all binary/categorical variable using class statement.

Example

proc dmdb batch data=sampsio.assocs out=dmassoc dmdbcat=catassoc;
 id customer;
var /* all continuous variables here **/ ;
 class /* all binary/categorical variables here **/;
run;

Let me know if you have any more questions.