这是我的代码:
#install and load libraries
library(arules)
library(arulesViz)
library(tidyverse)
library(readxl)
library(knitr)
library(ggplot2)
library(lubridate)
library(plyr)
library(dplyr)
#read .csv file
market <- read.csv(file.choose(),header=T, colClasses = "factor")
market <- market[complete.cases(market), ]
str(market)
rules <- apriori(market, parameter = list(supp=0.1, conf=0.8))
inspect(rules[1:10])
下面是一个结果示例:
lhs rhs support confidence coverage lift count
[1] {Butter=FALSE,
Sugar=FALSE,
Yogurt=FALSE,
chocolate=FALSE} => {Onion=FALSE} 0.1291291 0.8012422 0.1611612 1.343022 129
[2] {Butter=FALSE,
Kidney.Beans=FALSE,
Yogurt=FALSE,
chocolate=FALSE} => {Milk=FALSE} 0.1361361 0.8047337 0.1691692 1.353416 136
因此,正如您所看到的,结果显示为"FALSE"。问题是,我如何才能让它成为现实?
变量根据数据类型转换为项。以下是交易手册页面中的一些详细信息(请参阅? transactions
(:
-
因子:具有标称值(即因子、有序(的列被转换为一系列二进制项(每个级别一个,构造为变量名称=级别).
-
逻辑变量:描述一个人可能很高的逻辑变量,使用TRUE和FALSE值表示该人是否很高。该人高的事实将被编码在包含高项目的交易中,而不高的人将没有该项目。因此,对于逻辑变量,TRUE值将转换为具有变量名称的项,而对于FALSE值,则不会创建任何项。
由于您将数据读取为级别为TRUE和FALSE的因子,因此您也会获得级别为FALSE的项。您可以将它们作为logical
读取,或者在调用apriori之前使用as.logical()
转换数据帧中的相应列。请看? transactions
中的示例。这将有助于您更好地理解这种转换。