R arulessequence - Подготовка данных для майнинга cspade - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь найти последовательности в R с помощью arulessequence реализации cspade .

Мой фрейм данных выглядит следующим образом:

 items sequenceId eventId size 
 A          1        1     1
 B          2        1     1
 C          2        2     1
 A          3        1     1

Этот фрейм данных был создан из существующего набора данных с помощью следующего кода (удаление ненужных столбцов и создание последовательностей) :

data %>%
  select(seqId, sequence, items) %>%
  group_by(seqId) %>%
  mutate(basketSize = 1, sequence = rank(sequence)) %>% 
  ungroup() %>%
  mutate(seqId = ordered(seqId), sequence = ordered(sequence)) %>%
  write.table("data.txt", sep=" ", row.names = FALSE, col.names = FALSE, quote = FALSE)


data <- read_baskets("data.txt", info = c("sequenceID", "eventID", "size"))

as(data, "data.frame") #shows the data frame above!

Пока чтохорошо!

Однако, когда я пытаюсь:

 s1 <- cspade(data, parameter = list(support = 0.4), control = list(verbose = TRUE))

я получаю следующую ошибку:

 Error in makebin(data, file) : 'eid' invalid (strict order)

В другом месте я читал, что это потому, что cspade нуждается в событии ипорядковый номер для заказа.Но как мне это указать?Ясно, что упорядочение факторов перед экспортом их в «.txt» не работает.

Редактировать: Некоторые дополнительные сведения Просто объяснить код для создания ввода data длянемного больше.Первоначально переменная sequence имела некоторые пропущенные шаги (например, 1,3,4 для некоторых последовательностей), потому что я отфильтровал некоторые события.Поэтому я запустил функцию ранга для переиндексации событий в последовательности.Колонка size совершенно не нужна (она постоянна), но была включена в пример кода в документации для последовательности операций, поэтому я тоже включил ее.

...