Как преобразовать объект Transaction в Dataframe в R

Как преобразовать набор данных (Продовольственные товары) в пакете arules в dataframe.

class(Groceries)
[1] "transactions"
attr(,"package")
[1] "arules"

2 ответа

Решение

Вам нужно указать, что на самом деле нужно. Я не вижу as.data.frame.transactions функция на странице справки для arules-package. Элемент данных Groceries в него встроен фрейм данных, но вряд ли это то, что вам нужно:

str(Groceries)
Formal class 'transactions' [package "arules"] with 3 slots
  ..@ data       :Formal class 'ngCMatrix' [package "Matrix"] with 5 slots
  .. .. ..@ i       : int [1:43367] 13 60 69 78 14 29 98 24 15 29 ...
  .. .. ..@ p       : int [1:9836] 0 4 7 8 12 16 21 22 27 28 ...
  .. .. ..@ Dim     : int [1:2] 169 9835
  .. .. ..@ Dimnames:List of 2
  .. .. .. ..$ : NULL
  .. .. .. ..$ : NULL
  .. .. ..@ factors : list()
  ..@ itemInfo   :'data.frame': 169 obs. of  3 variables:
  .. ..$ labels: chr [1:169] "frankfurter" "sausage" "liver loaf" "ham" ...
  .. ..$ level2: Factor w/ 55 levels "baby food","bags",..: 44 44 44 44 44 44 44 42 42 41 ...
  .. ..$ level1: Factor w/ 10 levels "canned food",..: 6 6 6 6 6 6 6 6 6 6 ...
  ..@ itemsetInfo:'data.frame': 0 obs. of  0 variables

Я предполагаю, что вы действительно хотите:

as.matrix( Groceries@data )

Возможно добавление Groceries@ itemInfo$ labels как имена строк

arules использует объекты типа S4, но данные транзакции хранятся в транспонированной разреженной матрице. Вы не должны напрямую обращаться к данным, используя @, Используйте принуждение для доступа к данным транзакции. Это обеспечит правильность формата данных с правильными метками элементов.

Примеры:

as(Groceries, "matrix")
as(Groceries, "list")

матрица - это логическая матрица транзакций по элементам, а list создает список наборов транзакций. Для получения подробной информации, посмотрите на coercion методы в ?transactions,

Другие вопросы по тегам