首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ruleInduction的arules包中有自己的数据

ruleInduction的arules包中有自己的数据
EN

Stack Overflow用户
提问于 2015-10-06 20:37:28
回答 1查看 4.6K关注 0票数 0

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

代码语言:javascript
运行
复制
data <- read.table("~/csectiondata.txt", quote="\"", comment.char="")*

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

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

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

代码语言:javascript
运行
复制
data <- sapply(data, as.factor)*

但现在我发现了一个错误:

T中的错误(as(from,"ngCMatrix")):在为函数t选择方法时计算参数'x‘的错误:asMethod(对象)中的错误:无法强迫’NA‘到"nsparseMatrix"

我也尝试过transaction_data <- as(data, "transactions"),而且我也得到了同样的结果。

“asMethod(对象)中的错误”

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

EN

回答 1

Stack Overflow用户

发布于 2015-10-08 16:40:28

你需要先准备好你的数据。关联规则挖掘只能使用项,不能处理连续变量。

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32979292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档