2016-06-18 25 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.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

感謝您的回覆,Bulat。我的查詢現在已解決。但我有另一個查詢。下面這段代碼不起作用:subset.matrix < - is.subset(rules.df $ rules,rules.df $ rules)subset.matrix [lower.tri(subset.matrix,diag = T)] < - NA 冗餘< - colSums(subset.matrix,na.rm = T)> = 1 –

+0

您需要從哪個模塊中找出您正在使用的is.subset函數。 – Bulat