У меня есть кадр данных, и он выглядит так:
str(df)
'data.frame': 174671 obs. of 3 variables:
$ COD_PRODUCT: Factor w/ 338 levels "001CH","002CO",..: 1 1 1 1 1 1 1 1 1 1 ...
$ STORE : Factor w/ 15 levels "Barcelona","Florencia",..: 4 13 4 5 11 12 5 13 1 12 ...
$ SELL_ID : Factor w/ 74327 levels "BA0000000","BA0000001",..: 28696 65976 27147 14291 51141 59023 12249 61636 5495 59314 ...
Как мы видим здесь, в этих факторах нет ни NA, ни недопустимых значений:
print(unlist(lapply(df, function(x) any(is.na(x)))))
COD_PRODUCT STORE SELL_ID
FALSE FALSE FALSE
Моя цель — создать модель интеллектуального анализа данных (правила ассоциации), и для этого я ранее успешно импортировал пакет arules. Следующим шагом, который я выполнил, было разбить мой df на список и применить операцию для устранения повторяющихся вхождений, например:
ppvt <- split(x = df[, c("COD_PRODUCT", "STORE")], f = df$SELL_ID)
ppvt <- lapply (ppvt, unique)
Пока все работает нормально. Однако, когда я попытался преобразовать в транзакции:
ppvt <- as (ppvt, "transactions" )
Я получаю сообщение об ошибке:
Error in asMethod(object) : can coerce list with atomic components only
Совершенно ничего об этом не знаю (и да, как вы можете себе представить, я много искал в Интернете, прежде чем прийти сюда). У вас есть идея, как ее решить?
Любая помощь будет действительно оценена.
С уважением,
str(ppvt)
, и вы увидите, что каждый элемент списка является фреймом данных. Чтобы преобразовать в транзакции, вам нужно, чтобы каждый элемент списка был вектором. - person Esther   schedule 05.06.2018