我正在尝试使用arules
包进行一些市场购物篮分析,但是当我在summary()
对象上使用itemMatrix
函数来检查哪些是最常用的项目时,数字不加起来。
如果我这样做:
library(arules)
x <- read.transactions("Supermarket2014-15.csv")
summary(x)
我明白了:
transactions as itemMatrix in sparse format with
5001 rows (elements/itemsets/transactions) and
997 columns (items) and a density of 0.003557162
most frequent items:
45 28 42 35 22 (Other)
503 462 444 440 413 15474
但是,如果我使用for
循环或甚至在Excel中检查,产品45的计数是513而不是503. 28的相同,应该是499,依此类推。
奇怪的是,如果我总结所有总数(15474+413+440+444+462+503)
,我会得到正确的交易产品总数。
数据有几个NA
值,而产品是因素。
这是原始数据(日期范围从1到28,产品范围从1到50):
答案 0 :(得分:0)
如果您查看str(x)
来电的结果,则会在@iteminfo
和$labels
下看到某些项目包含"1;1"
等标签。这意味着读取文件后,项目未正确分隔。read.transactions()
中的默认分隔符是一个空格,但您似乎有(某些)分号。在sep=";"
中尝试read.transactions()
。