Захватите вывод arules::inspect как data.frame

В разделе "Ноль частых элементов" при использовании eclat для майнинга частых наборов элементов OP интересуется группировками / кластеризацией, основанными на том, как часто они упорядочиваются вместе. Эта группировка может быть проверена 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) для использования в качестве фрейма данных?

1 ответ

Решение

Мы можем использовать методы 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

Приведение наборов элементов к 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
Другие вопросы по тегам