Захватите вывод 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