0

我有一个 7 列的 excel 文件。前三个是数字,第 4-7 列是分类的。我将它保存到一个 txt 文件中并将其加载到 R 中(使用 RStudio,单击环境中的“导入数据集”按钮),它启动了以下命令

data <- read.table("~/csectiondata.txt", quote="\"", comment.char="")*

现在,我一直在尝试使用 apriori(data) ,这是我得到的错误:

asMethod(object) 中的错误:第 1、2、3 列不符合逻辑或因素。使用 as.factor、as.logical 或先分类。

我读到使用 sapply 和 as.factor 会有所帮助,所以我这样做了:

data <- sapply(data, as.factor)*

但现在我收到了这个错误:

t(as(from,“ngCMatrix”))中的错误:在为函数“t”选择方法时评估参数“x”时出错:asMethod(object)中的错误:无法将“NA”强制转换为“nsparseMatrix”

我也试过transaction_data <- as(data, "transactions")了,我也一样。

“asMethod(对象)中的错误”

我完全迷路了。有人可以帮我吗?

4

1 回答 1

0

您需要先准备数据。关联规则挖掘只能使用项目,不适用于连续变量。

例如,描述一个人的项目(即,称为事务的考虑对象)可能是tall。人高的事实将被编码在包含项目tall的事务中。这通常通过一个TRUE值在逐项交易矩阵中进行编码。这就是为什么as.transaction可以处理逻辑列的原因,因为它假定列代表一个项目。该函数还可以将具有标称值(即因子)的列转换为一系列二进制项(每个级别一个)。因此,如果您有名义变量,那么您需要使用类似data[,"a_nominal_var"] <- factor(data[,"a_nominal_var"]).

连续变量需要首先离散化。离散化产生的项目可能是age>18并且该列仅包含TRUEFALSE。或者,它可以是age<=1850=>age>18age>50级别的因素。这些将自动转换为 3 个项目,每个级别一个。看看arulesdiscretize()中的函数。

于 2015-10-08T16:40:28.997 回答