У меня есть такие данные
set.seed(123)
#fake data
dat <- list()
for(i in 1:1000) dat[[i]] <- LETTERS[sample(20)] [1:sample(10)[1]]
head(dat)
.
[[1]]
[1] "M" "L" "N" "H" "F" "P" "D"
[[2]]
[1] "F" "J" "C" "A" "G" "R" "M" "O" "S"
[[3]]
[1] "Q" "C" "E" "O" "P" "D"
[[4]]
[1] "K" "C" "P" "J" "N" "O" "B" "F" "Q"
[[5]]
[1] "K" "Q" "C"
[[6]]
[1] "M" "S" "A" "O" "E" "Q"
Мне нужно найти все ассоциации с "L"
Я использовал априори из arules package
library(arules)
rules <- apriori(data = dat,
parameter = list(supp = 0.01,
conf = 0.01),
appearance = list(rhs="L")
)
rules
И работает отлично, но в какой-то момент для меня оказалось слишком медленно. Я решил попробовать fpgrowth
из rCBA package
library(rCBA)
dat2 <- as(dat,"transactions")
rules <- rCBA::fpgrowth(dat2, support=0.01,
confidence=0.01,
consequent="L")
, но получаю сообщение об ошибке
2020-06-20 08:09:35 rCBA: initialized
2020-06-20 08:09:36 rCBA: data 1000x20
took: 1.21 s
����. 20, 2020 8:09:36 �� cz.jkuchar.rcba.fpg.FPGrowth run
INFO: FPG: start
java.lang.NullPointerException
Error in dimnames(x) <- dn :
length of 'dimnames' [2] not equal to array extent
at java.base/java.lang.String.<init>(String.java:254)
at cz.jkuchar.rcba.rules.Tuple.getCopy(Tuple.java:41)
at cz.jkuchar.rcba.fpg.FPGrowth.insert(FPGrowth.java:304)
at cz.jkuchar.rcba.fpg.FPGrowth.lambda$buildTree$0(FPGrowth.java:62)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1510)
at cz.jkuchar.rcba.fpg.FPGrowth.buildTree(FPGrowth.java:59)
at cz.jkuchar.rcba.fpg.FPGrowth.run(FPGrowth.java:125)
at cz.jkuchar.rcba.fpg.FPGrowth.run(FPGrowth.java:99)
at cz.jkuchar.rcba.r.RPruning.fpgrowth(RPruning.java:204)
, а пример из rCBA package
у меня работает нормально .. Я понимаю что мне нужно преобразовать мои данные по-другому, но я не знаю как .. Спасибо вам
UPD ======= за == MarBlo ========= ====== дайте пожалуйста более полный ответ, не понимаю как им пользоваться
dat[[1]]
[1] "M" "L" "N" "H" "F" "P" "D"
.
DAT2 <- do.call(rbind.data.frame,dat)
DAT2[1,]
c..M....F....Q....K....K....M....O....E....O....N..
1 M
c..L....J....C....C....Q....S....D....I....H....O..
1 L
c..N....C....E....P....C....A....O....T....J....L..
1 N
c..H....A....O....J....K....O....D....G....B....F..
1 H
c..F....G....P....N....Q....E....O....C....R....M..
1 F
c..P....R....D....O....C....Q....D....Q....L....S..
1 P
c..D....M....Q....B....K....M....O....R....C....G..
1 D
c..M....O....C....F....Q....S....D....A....T....C..
1 M
c..L....S....E....Q....C....A....O....K....O....T..
1 L
c..N....F....O....K....K....O....D....P....H....K..
1 N