0
を製造するための範囲外の添字Iは、このデータを持っているarulesパッケージ - エラー:私は<code>arules</code>パッケージ</p> <p>に勧告を行うしようとしている勧告
Data
Client product N Date
1 A Banana 1 01/01/2016
2 A Tomato 1 01/01/2016
3 A Tuna 1 01/01/2016
4 B Orange 2 01/01/2016
5 B Tomato 3 02/01/2016
6 C Kiwi 11 08/01/2016
次の私は、このコード
trans = as(split(Data$product, Data$Client), "transactions")
Sales<- as(trans, "data.frame")
rules = apriori(trans, parameter = list(support = 0.001, confidence = 0.005))
rules.sorted <- sort(rules, by="lift")
# find redundant rules
subset.matrix <- is.subset(rules.sorted, rules.sorted)
subset.matrix[lower.tri(subset.matrix, diag=T)] <- NA
redundant <- colSums(subset.matrix, na.rm=T) >= 1
which(redundant)
rules.pruned <- rules.sorted[!redundant]
inspect(rules.pruned)
rules = rules.pruned
を使用
私は以下の規則を得ます:
lhs rhs support confidence lift
1 {Tuna} => {Banana} 0.3333333 1.0000000 3.0
2 {Orange} => {Tomato} 0.3333333 1.0000000 1.5
3 {Tuna} => {Tomato} 0.3333333 1.0000000 1.5
4 {Banana} => {Tomato} 0.3333333 1.0000000 1.5
5 {} => {Kiwi} 0.3333333 0.3333333 1.0
6 {} => {Orange} 0.3333333 0.3333333 1.0
7 {} => {Tuna} 0.3333333 0.3333333 1.0
8 {} => {Banana} 0.3333333 0.3333333 1.0
9 {} => {Tomato} 0.6666667 0.6666667 1.0
しかし、今、すべてのクライアントのために、私は3つの製品をお勧めしたい:
for (i in 1:3) {
reco=function(x){
rulesMatchLHS = is.subset([email protected],x)
suitableRules = rulesMatchLHS & !(is.subset([email protected],x))
order.rules = sort(rules[suitableRules], by = "lift")
LIST([email protected])[[i]]
}
NewS <- sapply(1:length(trans), function(x) reco(trans[x]))
NewS <- as.data.frame(NewS)
Sales <-cbind(Sales,NewS)
}
をこのコードはエラー
Error in LIST([email protected])[[i]] : subscript out of bounds
を生成し、私はこの出来事私は、すべてのユーザーのための勧告を持っていなかったためだと思いますしかし、このコードでは、コードを続けて「提案なし」としたい。
これを行うにはどうすればよいですか?
thks、それは動作します:) – Kardu
recommenderlabがアソシエーションルールでいつ動作するかを知っていますか?なぜなら、私は、アイテムとユーザーとの間のアイテムと一緒にrecommenderlabを使用するので、アソシエーションルールを使用することができれば嬉しいです。 – Kardu
@Kardu:github(https://github.com/mhahsler/recommenderlab)の開発バージョンは既に動作しています。私は来週中にCRANに新しいバージョンを入れます。 –