我正在试验arules包中的apriori算法。
这就是我所做的: 我从SQL Server加载了一个视图到R. 由于该数据不是以交易形式(在apriori中使用),我必须转换它:
data< - sapply(orders,as.factor)
然后我进入了apriori功能:
apriori(data,parameter = list(support = 0.005,confidence = 0.5))
我收到此错误:
t中的错误(as(from," ngCMatrix")):评估参数错误' x'选择功能方法':asMethod(对象)中的错误:不能强迫' NA" nsparseMatrix"
我查询了一下,我甚至没有任何属于NULL / NA的属性。
我不明白错误的含义。有人知道问题是什么以及如何解决这个问题吗?
答案 0 :(得分:2)
我最近遇到了同样的错误。我所学到的只是你的数据必须被强制转换为挖掘项目集或规则的事务。这段代码应该会有所帮助。
transaction_data<- as(data, "transactions")
rules <- apriori(transaction_data,parameter = list(minlen=2,supp=0.2,conf=0.5))
答案 1 :(得分:2)
当您尝试使用R
分组功能时,会出现主要问题。正如您所看到的here,大多数分组函数都不会返回data.frame
。在您的情况下,您已使用sapply
返回向量。确保您负责适当的转换:
data = data.frame(sapply(orders,as.factor))
然后按照关联规则建立:
apriori(data, parameter = list (support=0.005, confidence=0.5))
这可以按预期工作(测试)。