在转换为事务arules时,错误“可以仅使用原子组件强制列表”

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

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

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 ...

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

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

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

任何帮助将非常感激。

问候,

r apriori arules
1个回答
0
投票

你可以在你之前检查课程(ppvt):

ppvt < - as(ppvt,“transactions”)。

它应该返回一个data.frame:

ppvt < - as(ppvt,“transactions”)

上班。

我正在与dplyr合作并面临类似的问题。使用as.data.frame()将tibble转换为data.frame解决了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.