Захватите вывод arules :: inspect как data.frame - PullRequest
0 голосов
/ 27 мая 2018

В "Ноль частых предметов" при использовании eclat для майнинга частых наборов предметов , ОП заинтересован в группировках / кластеризациях, основанных на том, как часто они заказываются вместе.Эту группировку можно проверить с помощью функции arules::inspect.

library(arules)
dataset <- read.transactions("8GbjnHK2.txt", sep = ";", rm.duplicates = TRUE)
f <- eclat(dataset, 
           parameter = list(
             supp = 0.001, 
             maxlen = 17, 
             tidLists = TRUE))
inspect(head(sort(f, by = "support"), 10))

Набор данных можно загрузить с https://pastebin.com/8GbjnHK2.

Однако выход не может быть легко сохранен в другом объекте какфрейм данных.

out <- inspect(f)

Итак, как нам захватить вывод inspect(f) для использования в качестве фрейма данных?

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Приведение наборов элементов к data.frame также создает требуемый вывод.

> head(as(f, "data.frame"))
              items     support count
1 {3031093,3059242} 0.001010101    16
2 {3031096,3059242} 0.001073232    17
3 {3060614,3060615} 0.001010101    16
4 {3022540,3072091} 0.001010101    16
5 {3061698,3061700} 0.001073232    17
6 {3031087,3059242} 0.002777778    44
0 голосов
/ 27 мая 2018

Мы можем использовать методы labels для извлечения ассоциаций / группировок и quality для извлечения показателей качества (поддержка и подсчет).Затем мы можем использовать cbind, чтобы сохранить их во фрейме данных.

out <- cbind(labels = labels(f), quality(f))
head(out)

#              labels  support count
# 1 {3031093,3059242} 0.001010    16
# 2 {3031096,3059242} 0.001073    17
# 3 {3060614,3060615} 0.001010    16
# 4 {3022540,3072091} 0.001010    16
# 5 {3061698,3061700} 0.001073    17
# 6 {3031087,3059242} 0.002778    44
...