我有一个excel文件,有7列。前三个是数字,第4-7列是绝对的.我将其保存到txt文件中,并将其加载到R中(使用RStudio,单击环境中的“导入数据集”按钮),该按钮启动以下命令
data <- read.table("~/csectiondata.txt", quote="\"", comment.char="")*
现在,我一直试图使用apriori(数据),这是我得到的错误:
asMethod(object)中的错误:列1、2、3不符合逻辑或因素。使用as.factor、as.logical或先分类.
我读到使用sapply和as.factor会有帮助,所以我这样做了:
data <- sapply(data, as.factor)*
但现在我发现了一个错误:
T中的错误(as(from,"ngCMatrix")):在为函数t选择方法时计算参数'x‘的错误:asMethod(对象)中的错误:无法强迫’NA‘到"nsparseMatrix"
我也尝试过transaction_data <- as(data, "transactions")
,而且我也得到了同样的结果。
“asMethod(对象)中的错误”
我完全迷路了。有人能帮我吗?
发布于 2015-10-08 16:40:28
你需要先准备好你的数据。关联规则挖掘只能使用项,不能处理连续变量。
例如,描述一个人(即被考虑的对象称为事务)的项可能很高。这个人很高的事实将被编码在包含条目tall的事务中。这通常是由TRUE
值在逐项事务矩阵中编码的.这就是为什么as.transaction
可以处理逻辑列的原因,因为它假定列代表一个项。该函数还可以将具有标称值(即因子)的列转换为一系列二进制项(每个级别一项)。因此,如果您有名义变量,那么您需要确保它们是使用data[,"a_nominal_var"] <- factor(data[,"a_nominal_var"])
之类的因素(而不是字符或数字)。
连续变量首先需要离散化。离散化产生的项可能是age>18,并且列只包含TRUE
或FALSE
。或者,它可以是age<=18、50=>age>18和age>50级别的一个因素。这些将自动转换为3个项目,每个级别一个。看看discretize()
函数在arules中的应用。
https://stackoverflow.com/questions/32979292
复制相似问题