首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用arules错误-asMethod中的错误(对象)

使用arules错误-asMethod中的错误(对象)
EN

Stack Overflow用户
提问于 2018-05-18 16:08:13
回答 2查看 4.5K关注 0票数 0
代码语言:javascript
复制
library(arules)
library(rattle)

data <- read.csv('R/347_347.csv', header = TRUE, stringsAsFactors = TRUE)
Data <- data[c(3:23)]
#error in here
trans <- as(Data, "transactions")

asMethod(object)中的错误:列1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18、19、20、21不符合逻辑或不符合因素。先分解列。

EN

回答 2

Stack Overflow用户

发布于 2018-05-18 16:12:55

问题在于列的数据类型。

您需要首先将它们转换为像factor这样的离散列类型(请参见https://www.stat.berkeley.edu/classes/s133/factors.html )。另一个选项是logical,即TRUEFALSE的布尔值。

例如:

代码语言:javascript
复制
my_data_frame$x <- as.factor(my_data_frame$x)

您需要对每个分类列执行此操作,例如错误消息中的索引号所提到的列。

例如:

代码语言:javascript
复制
data(iris)

iris[,1] <- as.factor(iris[,1])
iris[,2] <- as.factor(iris[,2])
iris[,3] <- as.factor(iris[,3])
iris[,4] <- as.factor(iris[,4])
iris[,5] <- as.factor(iris[,5])

iris = as(iris, "transactions")

iris

稀疏格式的事务,有150个事务(行)和126个项(列)

,甚至更简洁地说:

代码语言:javascript
复制
data(iris)
iris = as(data.frame(lapply(iris, as.character), stringsAsFactors=T), "transactions")
票数 1
EN

Stack Overflow用户

发布于 2018-05-18 16:19:27

请看这个示例,它使用了来自arules包的一些数据:

代码语言:javascript
复制
library(arules);
data("AdultUCI");
str(AdultUCI)
Adult = as(AdultUCI, "transactions");

AdultUCI <- dplyr::select(AdultUCI, "workclass", "marital-status", "occupation")
str(AdultUCI)

Adult = as(AdultUCI, "transactions");

首先,您将看到,在第一次尝试将其转换为事务时,该方法将失败,从而产生与您相同的错误。但是,如果只选择因素(“工薪阶层”、“婚姻状况”、“职业”),则该方法有效。

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

https://stackoverflow.com/questions/50415362

复制
相关文章

相似问题

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