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不符合逻辑或不符合因素。先分解列。
发布于 2018-05-18 16:12:55
问题在于列的数据类型。
您需要首先将它们转换为像factor这样的离散列类型(请参见https://www.stat.berkeley.edu/classes/s133/factors.html )。另一个选项是logical,即TRUE或FALSE的布尔值。
例如:
my_data_frame$x <- as.factor(my_data_frame$x)您需要对每个分类列执行此操作,例如错误消息中的索引号所提到的列。
例如:
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个项(列)
,甚至更简洁地说:
data(iris)
iris = as(data.frame(lapply(iris, as.character), stringsAsFactors=T), "transactions")发布于 2018-05-18 16:19:27
请看这个示例,它使用了来自arules包的一些数据:
library(arules);
data("AdultUCI");
str(AdultUCI)
Adult = as(AdultUCI, "transactions");
AdultUCI <- dplyr::select(AdultUCI, "workclass", "marital-status", "occupation")
str(AdultUCI)
Adult = as(AdultUCI, "transactions");首先,您将看到,在第一次尝试将其转换为事务时,该方法将失败,从而产生与您相同的错误。但是,如果只选择因素(“工薪阶层”、“婚姻状况”、“职业”),则该方法有效。
https://stackoverflow.com/questions/50415362
复制相似问题