2014-11-24 54 views
0

我试图从SAS运行示例代码proc rulegen文档:SAS rulegen DMDB编码类型

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; 

第一部分运作良好,但第二给出了一个错误:

The data= dataset should not be DMDB encoded type

有谁知道是什么问题是?

我得到了与我的数据一样的错误。

我也尝试使用proc与非dmdb数据关联,它“工作”但只生成一个明显的规则(根据sas示例应该有更多的规则,没有明显的规则)。

+0

您运行的是哪个版本的SAS和EM?我不知道这里是否与版本有冲突,因为我可以轻易找到的唯一文档是8.2/EM 4.3以上版本。 – Joe 2014-11-24 19:17:09

+0

我使用sas企业指南6.100,没有时间。我读过EM没有必要(现在找不到这个讨论..),但不知道它是否属实。 – ajanie 2014-11-25 09:28:47

回答

0

我遇到了同样的问题,我做了下面的解决它。

在下面的data =语句中,您应该给sas数据集sampsio.assocs,而不是dmassoc。

"proc assoc data=sampsio.assocs" 

此外,当您运行PROC DMDB确保您使用的是“无功”的声明&使用类声明的所有二进制/分类变量声明所有连续变量。

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

让我知道,如果你有任何问题。