如何为arules准备交易数据
How to prepare transaction data for arules
我已经挖了 3 天的问题,所以终于有勇气在这里问了。
我有一个包含 379,584 个条目的数据集,我想将它提供给 R
中的 "arules"
看起来像这样
A. 如果我尝试使用格式 = "basket",我会执行以下操作
sales <- read.csv("sales.csv", sep=";")
s1 <- split(sales$product_id, sales$order_id)
s1 <- unique(s1)
tr <- as(s1, "transactions")
这给我一个错误"can not coerce list with transactions with duplicated items"
乙。如果我使用格式 = "single"
tr <- read.transactions("sales.csv",
sep=";", format = "single", cols = c(4,2))
我也有同样的错误"can not coerce list with transactions with duplicated items"
我已经检查了文件是否有重复项,但 Excel 找不到。我相信麻烦是微不足道的,但我只是被困住了。
显然 unique(s1) 给您的编码带来了一些问题。是必需的吗?
我设法通过散列那一行来创建交易。
sales <- structure(list(sku = c(207426L, 207422L, 207424L, 9793L, 33186L,
72406L), product_id = c(15729L, 15725L, 15727L, 15999L, 15983L,
15992L), item_id = 1:6, order_id = c(1L, 1L, 1L, 2L, 2L, 2L)),
.Names = c("sku", "product_id", "item_id", "order_id"),
class = "data.frame", row.names = c(NA, -6L))
s1 <- split(sales$product_id, sales$order_id)
#s1 <- unique(s1)
tr <- as(s1, "transactions")
tr
transactions in sparse format with
2 transactions (rows) and
6 items (columns)
如果确实需要唯一性,运行改为:
s1 <- lapply(s1, unique)
我已经挖了 3 天的问题,所以终于有勇气在这里问了。 我有一个包含 379,584 个条目的数据集,我想将它提供给 R
中的 "arules"看起来像这样
sales <- read.csv("sales.csv", sep=";")
s1 <- split(sales$product_id, sales$order_id)
s1 <- unique(s1)
tr <- as(s1, "transactions")
这给我一个错误"can not coerce list with transactions with duplicated items"
乙。如果我使用格式 = "single"
tr <- read.transactions("sales.csv",
sep=";", format = "single", cols = c(4,2))
我也有同样的错误"can not coerce list with transactions with duplicated items"
我已经检查了文件是否有重复项,但 Excel 找不到。我相信麻烦是微不足道的,但我只是被困住了。
显然 unique(s1) 给您的编码带来了一些问题。是必需的吗?
我设法通过散列那一行来创建交易。
sales <- structure(list(sku = c(207426L, 207422L, 207424L, 9793L, 33186L,
72406L), product_id = c(15729L, 15725L, 15727L, 15999L, 15983L,
15992L), item_id = 1:6, order_id = c(1L, 1L, 1L, 2L, 2L, 2L)),
.Names = c("sku", "product_id", "item_id", "order_id"),
class = "data.frame", row.names = c(NA, -6L))
s1 <- split(sales$product_id, sales$order_id)
#s1 <- unique(s1)
tr <- as(s1, "transactions")
tr
transactions in sparse format with
2 transactions (rows) and
6 items (columns)
如果确实需要唯一性,运行改为:
s1 <- lapply(s1, unique)