错误"只能用原子组件强制列表"转换成事务时arules

时间:2018-06-04 21:38:14

标签: r apriori arules

我有一个数据框,它看起来像这样:

str(df)

'data.frame':   174671 obs. of  3 variables:
 $ COD_PRODUCT: Factor w/ 338 levels "001CH","002CO",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ STORE      : Factor w/ 15 levels "Barcelona","Florencia",..: 4 13 4 5 11 12 5 13 1 12 ...
 $ SELL_ID    : Factor w/ 74327 levels "BA0000000","BA0000001",..: 28696 65976 27147 14291 51141 59023 12249 61636 5495 59314 ...

这些因素中既没有NAs也没有无效值,我们可以在这里看到:

print(unlist(lapply(df, function(x) any(is.na(x)))))
COD_PRODUCT       STORE     SELL_ID 
      FALSE       FALSE       FALSE 

我的目标是创建一个数据挖掘模型(关联规则),为此,我之前成功导入了包 arules 。我遵循的下一步是将我的df拆分成一个列表并应用一个操作来消除重复的事件,例如:

ppvt <- split(x = df[, c("COD_PRODUCT", "STORE")], f = df$SELL_ID)
ppvt <- lapply (ppvt, unique)

到目前为止,一切正常。但是,当我试图转换成交易时:

ppvt <- as (ppvt,  "transactions" )

我收到错误消息:

 Error in asMethod(object) : can coerce list with atomic components only

完全无能为力(是的,正如你可以想象的那样,我来到这里之前在互联网上搜索了很多)。你对如何解决它有所了解吗?

任何帮助都将非常感激。

此致

1 个答案:

答案 0 :(得分:0)

您可以在以下课程之前检查课程(ppvt)

ppvt <-as(ppvt,“交易”)。

它应该为您返回一个data.frame:

ppvt <-as(ppvt,“ transactions”)

上班。

我正在与dplyr一起工作,面临类似的问题。使用as.data.frame()将小标题转换为data.frame可解决此问题。