无法将数据框转换为交易对象

问题描述 投票:0回答:4

我想使用arules包来练习使用R的挖掘关联规则。数据是

datt <- structure(list(Item1 = c(0L, 0L, 0L, 1L, 0L, 0L, 0L, 1L, 0L, 
0L), Item2 = c(0L, 0L, 0L, 1L, 0L, 1L, 1L, 0L, 0L, 0L), Item3 = c(0L, 
1L, 0L, 1L, 0L, 1L, 1L, 1L, 0L, 0L), Item4 = c(0L, 0L, 0L, 1L, 
0L, 0L, 0L, 0L, 0L, 0L), Item5 = c(1L, 0L, 0L, 1L, 0L, 0L, 0L, 
0L, 0L, 1L), Item6 = c(0L, 1L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L
), Item7 = c(0L, 1L, 0L, 1L, 0L, 1L, 0L, 0L, 0L, 0L), Item8 = c(0L, 
1L, 1L, 1L, 0L, 0L, 1L, 0L, 0L, 0L), Item9 = c(0L, 1L, 1L, 1L, 
0L, 0L, 0L, 0L, 1L, 0L), Item10 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L)), .Names = c("Item1", "Item2", "Item3", "Item4", 
"Item5", "Item6", "Item7", "Item8", "Item9", "Item10"), row.names = c(2L, 
3L, 4L, 5L, 6L, 8L, 9L, 10L, 11L, 12L), class = c("cast_df", 
"data.frame"))

正在做

table5 <- as(datt, "transactions")

此错误出现:

Error in as(datt, "transactions") : 
  no method or default for coercing “cast_df” to “transactions”

我该怎么做才能将我的对象转换为'transactions'对象?

r arules
4个回答
1
投票

尝试一下:

as(as.matrix(datt), "transactions")
transactions in sparse format with
 10 transactions (rows) and
 10 items (columns)

错误在这里很明显:

no method or default for coercing “cast_df” to “transactions”

[class(datt)cast_df,并且没有强制方法(as)对此类型。

注意,通常在使用arules包时不需要手动进行强制,该函数将尝试在内部进行正确的强制。例如:

dissimilarity(x=as.matrix(datt),method='cosine') ## works
dissimilarity(x=datt,method='cosine')            ## you get the same coercion error

1
投票

对我来说这有效

install.packages("arules")

0
投票

我遇到相同的错误,并通过添加库(矩阵)进行了修复

希望帮助


0
投票

也许您忘记加载arules程序包。

library(arules)
© www.soinside.com 2019 - 2024. All rights reserved.