R:关于无法强制NA'的先验错误;s到nsparseMatrix

R:关于无法强制NA'的先验错误;s到nsparseMatrix,r,associations,rules,apriori,arules,R,Associations,Rules,Apriori,Arules,我正在arules软件包中试验apriori算法 这就是我所做的: 我将一个视图从SQLServer加载到R。 由于该数据不是事务形式(在apriori中使用),因此我必须将其转换为: 数据我最近遇到了同样的错误。我所学到的只是,为了挖掘项目集或规则,必须将数据强制转换为事务。这段代码应该很有帮助 transaction_data<- as(data, "transactions") rules <- apriori(transaction_data,parameter = list

我正在arules软件包中试验apriori算法

这就是我所做的: 我将一个视图从SQLServer加载到R。 由于该数据不是事务形式(在apriori中使用),因此我必须将其转换为:


数据我最近遇到了同样的错误。我所学到的只是,为了挖掘项目集或规则,必须将数据强制转换为事务。这段代码应该很有帮助

transaction_data<- as(data, "transactions")
rules <- apriori(transaction_data,parameter = list(minlen=2,supp=0.2,conf=0.5))

transaction\u data当您尝试使用
R
分组函数时,会出现主要问题。正如您所见,大多数分组函数不会返回
data.frame
。在本例中,您使用了
sapply
,它返回一个向量。确保进行适当的转换:

data = data.frame(sapply(orders,as.factor))
然后按照关联规则构建:

apriori(data, parameter = list (support=0.005, confidence=0.5))

这就像预期的那样(经过测试)。

也许在
apriori()
过程中,某些值被强制转换为某种形式,如整数或双精度,从而创建
NA
,在那里您以前找不到它们?您是否尝试过求和(is.na(data))
结果是什么?@Gullydwarf谢谢。不幸的是,它还将0作为输出。这很好:)和
和(!is.finite(data))
?@Gullydwarf哦,哈哈,我是个傻瓜。好的,输出是88393256。顺便说一下,数据包含超过1200万条记录。这是什么意思?1200万中的88393256不是有限的?@Gullydwarf我发现只有数字的列才是导致错误的原因(根本没有NA)。即使当我在只有数字的列上使用
typeof()
时,它会显示
字符
(因为我使用了
as.factor
来更改它)。当我省略这些列时,我不必首先使用
as.factor
,apriori函数工作正常。在其他有数字的数据集上,它已经起作用了,但我不必在这些数据集上使用
as.factor
,所以我想这与它有关。你有没有任何线索,我怎么可以包括列与数字反正?我得到了同样的错误如上所述做你的建议。但根据segmented的建议,将这些值放在数据框架中是可行的。所以对我有效的是:data=data.frame(作为(数据,“事务”);规则=先验(数据)