2016-06-18 2 views
-7
require(arules) 
Groceries <- read.transactions("C:/Users/IBM_ADMIN/Desktopgroceries.csv",sep=",") 

m1 <- apriori(Groceries,parameter=list(support=0.007,confidence=0.25,minlen=2)) 

subset.matrix <- is.subset(m1, m1) 

# Эта часть линии не работаетIs is.subset не работает в R?

Это производит следующее сообщение об ошибке:

Error in match(x, table, nomatch = 0L) : 
    'match' requires vector arguments 

Пожалуйста, помогите мне.

+3

Ваш вопрос не содержит [воспроизводимый пример] (http://stackoverflow.com/q/5963269/4303162). Поэтому трудно понять вашу проблему и дать вам соответствующий ответ. Пожалуйста, сделайте свои данные доступными (например, с помощью 'dput()') или используйте один из примеров наборов данных в R. Также добавьте минимальный код, необходимый для воспроизведения вашей проблемы на ваш пост. – Stibu

ответ

0

apriori возвращает правила объекта, а не вектор:

data("Adult") 
## Mine association rules. 
rules <- apriori(Adult, 
    parameter = list(supp = 0.5, conf = 0.9, target = "rules")) 
class(rules) 
# [1] "rules" 

, если вы хотите сравнить списки правил, нужно будет преобразовать этот объект в data.frame, например:

rules.df <- as(rules, "data.frame") 
is.subset(rules.df$rules, rules.df$rules) 
+0

Одна из возможностей заключается в том, что метод скрыт от другого пакета .. – Bulat

+0

Спасибо за ответ, Булат. Теперь мой запрос разрешен. Но у меня есть другой запрос. Следующий фрагмент кода не работает: subset.matrix <- is.subset (rules.df $ rules, rules.df $ rules) subset.matrix [lower.tri (subset.matrix, diag = T)] <- NA redundant <- colSums (subset.matrix, na.rm = T)> = 1 –

+0

вам нужно выяснить, из какой функции 'is.subset' вы используете. – Bulat