0

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).

Mogsdad
  • 44,709
  • 21
  • 151
  • 275
ajanie
  • 1
  • 2
  • What version of SAS and EM are you running? I wonder if there is some conflict with version here, as the only documentation I can easily find is 8.2/EM 4.3 and older for these procs. – Joe Nov 24 '14 at 19:17
  • I use sas enterprise guide 6.100, no em. I've read EM is not necessary ( cannot find this discussion now..), but not sure if it is true. – ajanie Nov 25 '14 at 09:28

1 Answers1

0

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.

GeorgeOfTheRF
  • 8,244
  • 23
  • 57
  • 80