gpt4 book ai didi

r - 如何将data.frame转换为arules的事务

转载 作者:行者123 更新时间:2023-12-03 10:16:14 25 4
gpt4 key购买 nike

我从一个 csv 文件中读取数据,数据有 3 列,一列是交易 ID,另外两列是产品和产品类别。我需要将其转换为交易才能使用 apriori函数在 规则 .当我转换为交易时,它显示一个错误:

dat <- read.csv("spss.csv",head=TRUE,sep="," , as.is = T)
dat[,2] <- factor(dat[,2])
dat[,3] <- factor(dat[,3])
spssdat <- dat[,c(1,2,3)]
str(spssdat)

'data.frame': 108919 obs. of 3 variables:
$ Transaction_id: int 3000312 3000312 3001972 3003361 3003361 3003361 3003361 3003361 3003361 3004637 ...
$ product_catalog : Factor w/ 9 levels "AIM","BA","IM",..: 1 1 5 7 7 7 7 7 7 1 ...
$ product : Factor w/ 332 levels "ACM","ACTG/AIM",..: 7 7 159 61 61 61 61 61 61 7 ...

trans4 <- as(spssdat, "transactions")

Error in as(spssdat, "transactions") :
no method or default for coercing “data.frame” to “transactions”

如果数据只有两列,它可以通过以下方式工作:
trans4 <- as(split(spssdat[,2], spssdat[,1]), "transactions")

但是当我有 3 列时,我不知道如何转换。通常还有额外的列,如类别属性、客户属性。所以列通常大于 2 列。需要在多列之间找到规则。

最佳答案

我在 this website 上找到了一些对我有用的信息.让我复制相关段落:

The dataframe can be in either a normalized (single) form or a flat file (basket) form.
When the file is in basket form it means that each record represents a transaction where the items in the basket are represented by columns.
When the dataset is in single form it means that each record represents one single item and each item contains a transaction id.



要从文件加载事务,请使用 read.transactions .在您和我的案例中,文件都在 中单例形式。
我使用以下代码将 .csv 文件加载为 transactions :
trans = read.transactions("some_data.csv", format = "single", sep = ",", cols = c("transactionID", "productID"))

要完全理解上述命令,请查看 read.transactions手册,输入后可用 ?read.transactions在 R 控制台中。

关于r - 如何将data.frame转换为arules的事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17313450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com